home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Mops source / PPC source / setup < prev    next >
MacBinary  |  1999-02-05  |  28.1 KB  |  [TEXT/MSET]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Fri Feb 5 15:07:36 1999, modified Fri Feb 5 15:07:36 1999, creator 'MSET', type ASCII, 28083 bytes "setup" , at 0x6e33 505 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-2K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MSET]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 05 73 65 74 75 70 00 | 00 00 00 00 00 00 00 00 |..setup.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 53 45 | 54 01 00 00 00 00 00 00 |.TEXTMSE|T.......|
|00000050| 00 00 00 00 00 6d b3 00 | 00 01 f9 b2 e1 00 08 b2 |.....m..|........|
|00000060| e1 00 08 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 86 5c 00 00 |........|.....\..|
|00000080| 28 2a 0d 54 68 69 73 20 | 69 73 20 74 68 65 20 66 |(*.This |is the f|
|00000090| 69 72 73 74 20 66 69 6c | 65 20 63 6f 6d 70 69 6c |irst fil|e compil|
|000000a0| 65 64 20 69 6e 20 74 68 | 65 20 50 50 43 20 4d 6f |ed in th|e PPC Mo|
|000000b0| 70 73 20 69 6d 61 67 65 | 2e 20 20 43 52 4f 53 53 |ps image|. CROSS|
|000000c0| 20 28 69 6e 20 63 67 36 | 29 0d 73 77 69 74 63 68 | (in cg6|).switch|
|000000d0| 65 73 20 36 38 6b 20 4d | 6f 70 73 20 74 6f 20 67 |es 68k M|ops to g|
|000000e0| 65 6e 65 72 61 74 69 6e | 67 20 50 50 43 20 63 6f |eneratin|g PPC co|
|000000f0| 64 65 2e 0d 0d 41 74 20 | 74 68 65 20 62 65 67 69 |de...At |the begi|
|00000100| 6e 6e 69 6e 67 20 6f 66 | 20 74 68 65 20 63 6f 64 |nning of| the cod|
|00000110| 65 20 61 72 65 61 2c 20 | 74 68 65 72 65 27 73 20 |e area, |there's |
|00000120| 61 6e 20 69 6e 66 6f 20 | 62 6c 6f 63 6b 20 77 69 |an info |block wi|
|00000130| 74 68 20 63 65 72 74 61 | 69 6e 0d 71 75 61 6e 74 |th certa|in.quant|
|00000140| 69 74 69 65 73 20 77 65 | 20 6e 65 65 64 20 74 6f |ities we| need to|
|00000150| 20 73 65 74 20 65 76 65 | 72 79 74 68 69 6e 67 20 | set eve|rything |
|00000160| 75 70 2e 20 20 48 65 72 | 65 27 73 20 74 68 65 20 |up. Her|e's the |
|00000170| 66 6f 72 6d 61 74 20 2d | 20 6e 6f 74 65 20 74 68 |format -| note th|
|00000180| 61 74 0d 74 68 69 73 20 | 4d 55 53 54 20 41 47 52 |at.this |MUST AGR|
|00000190| 45 45 20 77 69 74 68 20 | 77 68 61 74 20 77 65 20 |EE with |what we |
|000001a0| 68 61 76 65 20 69 6e 20 | 63 67 34 2f 7a 50 45 46 |have in |cg4/zPEF|
|000001b0| 21 0d 0d 65 6e 74 20 70 | 74 20 6f 66 66 73 65 74 |!..ent p|t offset|
|000001c0| 20 20 09 6c 65 6e 67 74 | 68 09 09 77 68 61 74 20 | .lengt|h..what |
|000001d0| 69 74 20 69 73 0d 0d 09 | 30 09 09 09 34 20 62 79 |it is...|0...4 by|
|000001e0| 74 65 73 09 09 69 6e 69 | 74 69 61 6c 20 62 72 61 |tes..ini|tial bra|
|000001f0| 6e 63 68 0d 09 34 09 09 | 09 34 20 62 79 74 65 73 |nch..4..|.4 bytes|
|00000200| 09 09 63 6f 64 65 20 73 | 69 7a 65 0d 09 38 09 09 |..code s|ize..8..|
|00000210| 09 34 20 62 79 74 65 73 | 09 09 64 61 74 61 20 73 |.4 bytes|..data s|
|00000220| 69 7a 65 0d 09 31 32 09 | 09 09 34 20 62 79 74 65 |ize..12.|..4 byte|
|00000230| 73 09 09 64 69 73 70 6c | 61 63 65 6d 65 6e 74 20 |s..displ|acement |
|00000240| 66 72 6f 6d 20 63 6f 64 | 65 5f 73 74 61 72 74 20 |from cod|e_start |
|00000250| 74 6f 20 6e 75 63 5f 63 | 6f 64 65 5f 73 74 61 72 |to nuc_c|ode_star|
|00000260| 74 0d 09 09 09 09 09 09 | 09 09 28 69 2e 65 2e 20 |t.......|..(i.e. |
|00000270| 63 6f 64 65 20 67 65 6e | 65 72 61 74 6f 72 20 63 |code gen|erator c|
|00000280| 6f 64 65 20 61 72 65 61 | 29 0d 09 31 36 09 09 09 |ode area|)..16...|
|00000290| 34 20 62 79 74 65 73 09 | 09 64 69 73 70 6c 61 63 |4 bytes.|.displac|
|000002a0| 65 6d 65 6e 74 20 66 72 | 6f 6d 20 64 61 74 61 5f |ement fr|om data_|
|000002b0| 73 74 61 72 74 20 74 6f | 20 6e 75 63 5f 64 61 74 |start to| nuc_dat|
|000002c0| 61 5f 73 74 61 72 74 0d | 09 09 09 09 09 09 09 09 |a_start.|........|
|000002d0| 28 69 2e 65 2e 20 63 6f | 64 65 20 67 65 6e 65 72 |(i.e. co|de gener|
|000002e0| 61 74 6f 72 20 64 61 74 | 61 20 61 72 65 61 29 0d |ator dat|a area).|
|000002f0| 09 32 30 09 09 09 33 32 | 20 62 79 74 65 73 09 69 |.20...32| bytes.i|
|00000300| 6e 69 74 69 61 6c 20 43 | 4f 4e 54 45 58 54 0d 09 |nitial C|ONTEXT..|
|00000310| 35 32 09 09 09 20 34 20 | 62 79 74 65 73 09 66 6c |52... 4 |bytes.fl|
|00000320| 61 67 73 0d 09 35 36 09 | 09 09 20 34 20 62 79 74 |ags..56.|.. 4 byt|
|00000330| 65 73 09 23 62 79 74 65 | 73 20 63 68 6f 70 70 65 |es.#byte|s choppe|
|00000340| 64 20 66 72 6f 6d 20 62 | 6f 74 74 6f 6d 20 6f 66 |d from b|ottom of|
|00000350| 20 73 65 67 20 38 0d 09 | 36 30 09 09 09 20 34 20 | seg 8..|60... 4 |
|00000360| 62 79 74 65 73 09 23 62 | 79 74 65 73 20 63 68 6f |bytes.#b|ytes cho|
|00000370| 70 70 65 64 20 66 72 6f | 6d 20 62 6f 74 74 6f 6d |pped fro|m bottom|
|00000380| 20 6f 66 20 73 65 67 20 | 39 0d 09 36 34 09 09 09 | of seg |9..64...|
|00000390| 20 34 20 62 79 74 65 73 | 09 74 6f 74 61 6c 20 63 | 4 bytes|.total c|
|000003a0| 6f 64 65 20 73 69 7a 65 | 20 28 69 6e 63 6c 75 64 |ode size| (includ|
|000003b0| 69 6e 67 20 73 70 61 72 | 65 20 72 6f 6f 6d 29 0d |ing spar|e room).|
|000003c0| 09 36 38 09 09 09 20 34 | 20 62 79 74 65 73 09 74 |.68... 4| bytes.t|
|000003d0| 6f 74 61 6c 20 64 61 74 | 61 20 73 69 7a 65 20 28 |otal dat|a size (|
|000003e0| 69 6e 63 6c 75 64 69 6e | 67 20 73 70 61 72 65 20 |includin|g spare |
|000003f0| 72 6f 6f 6d 29 0d 09 37 | 32 09 09 09 20 38 20 62 |room)..7|2... 8 b|
|00000400| 79 74 65 73 09 73 70 61 | 72 65 0d 0d 09 09 74 6f |ytes.spa|re....to|
|00000410| 74 61 6c 3a 20 38 30 20 | 62 79 74 65 73 2e 0d 2a |tal: 80 |bytes..*|
|00000420| 29 0d 0d 63 72 6f 73 73 | 0d 0d 6d 61 72 6b 65 72 |)..cross|..marker|
|00000430| 20 6d 5f 5f 73 65 74 75 | 70 09 09 5c 20 61 6c 73 | m__setu|p..\ als|
|00000440| 6f 20 6d 61 72 6b 73 20 | 74 68 65 20 73 74 61 72 |o marks |the star|
|00000450| 74 20 6f 66 20 74 68 65 | 20 50 50 43 20 64 69 63 |t of the| PPC dic|
|00000460| 0d 0d 3a 20 4e 55 4c 4c | 20 20 3b 0d 0d 5c 09 3d |..: NULL| ;..\.=|
|00000470| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000480| 3d 20 52 45 47 49 53 54 | 45 52 20 44 45 46 49 4e |= REGIST|ER DEFIN|
|00000490| 49 54 49 4f 4e 53 20 20 | 3d 3d 3d 3d 3d 3d 3d 3d |ITIONS |========|
|000004a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0d 5c 20 72 |========|===..\ r|
|000004b0| 30 20 69 73 20 73 63 72 | 61 74 63 68 0d 0d 30 09 |0 is scr|atch..0.|
|000004c0| 63 6f 6e 73 74 61 6e 74 | 09 66 61 6c 73 65 0d 2d |constant|.false.-|
|000004d0| 31 09 63 6f 6e 73 74 61 | 6e 74 09 74 72 75 65 0d |1.consta|nt.true.|
|000004e0| 0d 31 09 63 6f 6e 73 74 | 61 6e 74 09 73 79 73 5f |.1.const|ant.sys_|
|000004f0| 53 50 5f 72 65 67 0d 32 | 09 63 6f 6e 73 74 61 6e |SP_reg.2|.constan|
|00000500| 74 09 52 54 4f 43 5f 72 | 65 67 0d 31 30 09 63 6f |t.RTOC_r|eg.10.co|
|00000510| 6e 73 74 61 6e 74 09 72 | 5a 5f 72 65 67 0d 31 31 |nstant.r|Z_reg.11|
|00000520| 09 63 6f 6e 73 74 61 6e | 74 09 72 58 5f 72 65 67 |.constan|t.rX_reg|
|00000530| 0d 31 32 09 63 6f 6e 73 | 74 61 6e 74 09 72 59 5f |.12.cons|tant.rY_|
|00000540| 72 65 67 0d 31 33 09 63 | 6f 6e 73 74 61 6e 74 09 |reg.13.c|onstant.|
|00000550| 6d 61 69 6e 43 6f 64 65 | 5f 72 65 67 0d 31 34 09 |mainCode|_reg.14.|
|00000560| 63 6f 6e 73 74 61 6e 74 | 09 6d 61 69 6e 44 61 74 |constant|.mainDat|
|00000570| 61 5f 72 65 67 0d 31 35 | 09 63 6f 6e 73 74 61 6e |a_reg.15|.constan|
|00000580| 74 09 6d 6f 64 43 6f 64 | 65 5f 72 65 67 0d 31 36 |t.modCod|e_reg.16|
|00000590| 09 63 6f 6e 73 74 61 6e | 74 09 6d 6f 64 44 61 74 |.constan|t.modDat|
|000005a0| 61 5f 72 65 67 0d 31 37 | 09 63 6f 6e 73 74 61 6e |a_reg.17|.constan|
|000005b0| 74 09 52 50 5f 72 65 67 | 0d 31 38 09 63 6f 6e 73 |t.RP_reg|.18.cons|
|000005c0| 74 61 6e 74 09 53 50 5f | 72 65 67 0d 31 39 09 63 |tant.SP_|reg.19.c|
|000005d0| 6f 6e 73 74 61 6e 74 09 | 46 53 50 5f 72 65 67 0d |onstant.|FSP_reg.|
|000005e0| 32 30 09 63 6f 6e 73 74 | 61 6e 74 09 6f 62 6a 5f |20.const|ant.obj_|
|000005f0| 62 61 73 65 5f 72 65 67 | 0d 32 31 09 63 6f 6e 73 |base_reg|.21.cons|
|00000600| 74 61 6e 74 09 49 5f 72 | 65 67 09 09 09 5c 20 63 |tant.I_r|eg...\ c|
|00000610| 61 6e 20 62 65 20 75 73 | 65 64 20 66 6f 72 20 61 |an be us|ed for a|
|00000620| 20 6c 6f 63 61 6c 20 69 | 66 20 6e 6f 20 44 4f 2e | local i|f no DO.|
|00000630| 2e 2e 4c 4f 4f 50 0d 09 | 09 09 09 09 09 09 09 5c |..LOOP..|.......\|
|00000640| 20 20 6f 72 20 46 4f 52 | 2e 2e 2e 4e 45 58 54 0d | or FOR|...NEXT.|
|00000650| 32 32 09 63 6f 6e 73 74 | 61 6e 74 09 64 6f 5f 6c |22.const|ant.do_l|
|00000660| 69 6d 69 74 5f 72 65 67 | 09 5c 20 63 61 6e 20 62 |imit_reg|.\ can b|
|00000670| 65 20 75 73 65 64 20 66 | 6f 72 20 61 20 6c 6f 63 |e used f|or a loc|
|00000680| 61 6c 20 69 66 20 6e 6f | 20 44 4f 2e 2e 4c 4f 4f |al if no| DO..LOO|
|00000690| 50 0d 0d 32 31 09 63 6f | 6e 73 74 61 6e 74 09 31 |P..21.co|nstant.1|
|000006a0| 73 74 5f 67 70 72 5f 6c | 6f 63 61 6c 0d 31 34 09 |st_gpr_l|ocal.14.|
|000006b0| 63 6f 6e 73 74 61 6e 74 | 09 31 73 74 5f 66 70 72 |constant|.1st_fpr|
|000006c0| 5f 6c 6f 63 61 6c 0d 0d | 0d 5c 20 4e 6f 77 20 77 |_local..|.\ Now w|
|000006d0| 65 20 64 65 66 69 6e 65 | 20 73 6f 6d 65 20 63 6f |e define| some co|
|000006e0| 6e 73 74 61 6e 74 73 2c | 20 76 61 6c 75 65 73 20 |nstants,| values |
|000006f0| 65 74 63 2e 20 77 68 69 | 63 68 20 77 65 20 6e 65 |etc. whi|ch we ne|
|00000700| 65 64 20 61 74 20 73 65 | 74 75 70 20 74 69 6d 65 |ed at se|tup time|
|00000710| 2e 0d 5c 20 4d 6f 73 74 | 20 6f 66 20 74 68 65 20 |..\ Most| of the |
|00000720| 6f 74 68 65 72 73 20 61 | 72 65 20 64 65 66 69 6e |others a|re defin|
|00000730| 65 64 20 6e 65 61 72 20 | 74 68 65 20 73 74 61 72 |ed near |the star|
|00000740| 74 20 6f 66 20 70 6e 75 | 63 31 2e 0d 0d 38 30 30 |t of pnu|c1...800|
|00000750| 20 20 63 65 6c 6c 73 09 | 63 6f 6e 73 74 61 6e 74 | cells.|constant|
|00000760| 09 52 53 54 41 43 4b 5f | 53 49 5a 45 0d 31 30 30 |.RSTACK_|SIZE.100|
|00000770| 30 20 63 65 6c 6c 73 09 | 63 6f 6e 73 74 61 6e 74 |0 cells.|constant|
|00000780| 09 53 54 41 43 4b 5f 53 | 49 5a 45 0d 32 30 30 20 |.STACK_S|IZE.200 |
|00000790| 33 20 3c 3c 09 63 6f 6e | 73 74 61 6e 74 09 46 53 |3 <<.con|stant.FS|
|000007a0| 54 41 43 4b 5f 53 49 5a | 45 0d 34 09 09 09 63 6f |TACK_SIZ|E.4...co|
|000007b0| 6e 73 74 61 6e 74 09 31 | 43 45 4c 4c 0d 24 20 37 |nstant.1|CELL.$ 7|
|000007c0| 46 46 46 46 46 46 46 09 | 63 6f 6e 73 74 61 6e 74 |FFFFFFF.|constant|
|000007d0| 09 42 49 47 23 0d 36 35 | 35 32 30 09 09 63 6f 6e |.BIG#.65|520..con|
|000007e0| 73 74 61 6e 74 09 44 49 | 53 50 4c 5f 52 41 4e 47 |stant.DI|SPL_RANG|
|000007f0| 45 09 09 5c 20 77 68 61 | 74 20 77 65 20 63 61 6e |E..\ wha|t we can|
|00000800| 20 66 69 74 20 69 6e 20 | 61 20 73 69 67 6e 65 64 | fit in |a signed|
|00000810| 20 31 36 2d 62 69 74 73 | 0d 09 09 09 09 09 09 09 | 16-bits|........|
|00000820| 09 09 09 5c 20 20 64 69 | 73 70 6c 61 63 65 6d 65 |...\ di|splaceme|
|00000830| 6e 74 2c 20 72 6f 75 6e | 64 65 64 20 64 6f 77 6e |nt, roun|ded down|
|00000840| 20 74 6f 0d 09 09 09 09 | 09 09 09 09 09 09 5c 20 | to.....|......\ |
|00000850| 20 38 2d 62 79 74 65 20 | 61 6c 69 67 6e 6d 65 6e | 8-byte |alignmen|
|00000860| 74 0d 33 32 37 36 30 09 | 09 63 6f 6e 73 74 61 6e |t.32760.|.constan|
|00000870| 74 09 48 41 4c 46 5f 44 | 49 53 50 4c 5f 52 41 4e |t.HALF_D|ISPL_RAN|
|00000880| 47 45 0d 0d 24 20 46 46 | 46 46 38 31 30 33 09 63 |GE..$ FF|FF8103.c|
|00000890| 6f 6e 73 74 61 6e 74 09 | 6e 69 6c 50 0d 24 20 46 |onstant.|nilP.$ F|
|000008a0| 46 46 46 38 31 30 31 09 | 63 6f 6e 73 74 61 6e 74 |FFF8101.|constant|
|000008b0| 09 6e 69 6c 48 0d 0d 24 | 20 37 46 46 30 31 30 30 |.nilH..$| 7FF0100|
|000008c0| 30 09 63 6f 6e 73 74 61 | 6e 74 09 71 75 69 65 74 |0.consta|nt.quiet|
|000008d0| 4e 41 4e 09 5c 20 4e 41 | 4e 28 31 32 38 29 20 28 |NAN.\ NA|N(128) (|
|000008e0| 71 75 69 65 74 29 0d 0d | 32 30 34 09 09 09 63 6f |quiet)..|204...co|
|000008f0| 6e 73 74 61 6e 74 09 46 | 43 42 6c 65 6e 0d 33 30 |nstant.F|CBlen.30|
|00000900| 09 09 09 63 6f 6e 73 74 | 61 6e 74 09 48 4f 4c 44 |...const|ant.HOLD|
|00000910| 6c 65 6e 0d 32 30 30 09 | 09 09 63 6f 6e 73 74 61 |len.200.|..consta|
|00000920| 6e 74 09 50 41 44 6c 65 | 6e 0d 34 30 30 09 09 09 |nt.PADle|n.400...|
|00000930| 63 6f 6e 73 74 61 6e 74 | 09 54 49 42 6c 65 6e 0d |constant|.TIBlen.|
|00000940| 35 31 32 09 09 09 63 6f | 6e 73 74 61 6e 74 09 45 |512...co|nstant.E|
|00000950| 72 72 44 75 6d 70 4c 65 | 6e 0d 0d 74 72 75 65 09 |rrDumpLe|n..true.|
|00000960| 09 63 6f 6e 73 74 61 6e | 74 09 50 50 43 3f 09 09 |.constan|t.PPC?..|
|00000970| 5c 20 41 4c 57 41 59 53 | 20 74 72 75 65 20 66 72 |\ ALWAYS| true fr|
|00000980| 6f 6d 20 43 52 4f 53 53 | 20 6f 6e 77 61 72 64 73 |om CROSS| onwards|
|00000990| 2c 20 62 79 20 64 65 66 | 69 6e 69 74 69 6f 6e 21 |, by def|inition!|
|000009a0| 0d 0d 0d 45 72 72 44 75 | 6d 70 4c 65 6e 20 20 38 |...ErrDu|mpLen 8|
|000009b0| 20 2f 20 35 20 2d 0d 09 | 09 09 63 6f 6e 73 74 61 | / 5 -..|..consta|
|000009c0| 6e 74 09 6d 61 78 44 75 | 6d 70 0d 0d 46 43 42 6c |nt.maxDu|mp..FCBl|
|000009d0| 65 6e 20 48 4f 4c 44 6c | 65 6e 20 2b 20 50 41 44 |en HOLDl|en + PAD|
|000009e0| 6c 65 6e 20 2b 20 54 49 | 42 6c 65 6e 20 2b 20 45 |len + TI|Blen + E|
|000009f0| 72 72 44 75 6d 70 4c 65 | 6e 20 2b 20 38 20 2b 0d |rrDumpLe|n + 8 +.|
|00000a00| 09 09 09 63 6f 6e 73 74 | 61 6e 74 09 46 42 6c 6b |...const|ant.FBlk|
|00000a10| 4c 65 6e 09 09 5c 20 74 | 68 65 20 65 78 74 72 61 |Len..\ t|he extra|
|00000a20| 20 38 20 69 73 20 66 6f | 72 20 74 68 65 20 6f 62 | 8 is fo|r the ob|
|00000a30| 6a 65 63 74 20 68 65 61 | 64 65 72 0d 0d 0d 65 6e |ject hea|der...en|
|00000a40| 74 72 79 5f 70 6f 69 6e | 74 5f 74 6f 63 5f 6f 66 |try_poin|t_toc_of|
|00000a50| 66 73 65 74 0d 09 09 09 | 63 6f 6e 73 74 61 6e 74 |fset....|constant|
|00000a60| 09 65 6e 74 72 79 5f 70 | 6f 69 6e 74 5f 54 4f 43 |.entry_p|oint_TOC|
|00000a70| 5f 6f 66 66 73 65 74 0d | 0d 0d 5c 09 09 3d 3d 3d |_offset.|..\..===|
|00000a80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00000aa0| 0d 24 20 33 33 33 33 33 | 33 33 33 09 76 61 6c 75 |.$ 33333|333.valu|
|00000ab0| 65 09 09 64 64 09 09 5c | 20 6d 61 72 6b 65 72 20 |e..dd..\| marker |
|00000ac0| 66 6f 72 20 73 74 61 72 | 74 20 6f 66 20 64 61 74 |for star|t of dat|
|00000ad0| 61 20 61 72 65 61 2c 0d | 09 09 09 09 09 09 09 09 |a area,.|........|
|00000ae0| 5c 20 20 73 74 72 61 69 | 67 68 74 20 61 66 74 65 |\ strai|ght afte|
|00000af0| 72 20 54 4f 43 0d 0d 24 | 20 31 30 30 30 30 30 09 |r TOC..$| 100000.|
|00000b00| 76 61 6c 75 65 09 09 53 | 50 41 52 45 5f 43 4f 44 |value..S|PARE_COD|
|00000b10| 45 5f 53 49 5a 45 0d 24 | 20 31 30 30 30 30 09 09 |E_SIZE.$| 10000..|
|00000b20| 76 61 6c 75 65 09 09 53 | 50 41 52 45 5f 44 41 54 |value..S|PARE_DAT|
|00000b30| 41 5f 53 49 5a 45 0d 0d | 27 20 6e 75 6c 6c 09 09 |A_SIZE..|' null..|
|00000b40| 76 65 63 74 09 09 4f 42 | 4a 49 4e 49 54 09 09 09 |vect..OB|JINIT...|
|00000b50| 5c 20 69 6e 69 74 69 61 | 6c 69 7a 65 73 20 4d 6f |\ initia|lizes Mo|
|00000b60| 70 73 20 6f 62 6a 65 63 | 74 73 0d 0d 30 09 09 09 |ps objec|ts..0...|
|00000b70| 76 61 6c 75 65 09 09 43 | 44 50 0d 30 09 09 09 76 |value..C|DP.0...v|
|00000b80| 61 6c 75 65 09 09 44 50 | 0d 30 09 09 09 76 61 6c |alue..DP|.0...val|
|00000b90| 75 65 09 09 6d 6f 64 5f | 73 65 67 23 09 09 5c 20 |ue..mod_|seg#..\ |
|00000ba0| 63 6f 64 65 20 73 65 67 | 23 20 6f 66 20 63 75 72 |code seg|# of cur|
|00000bb0| 72 65 6e 74 6c 79 20 72 | 75 6e 6e 69 6e 67 20 6d |rently r|unning m|
|00000bc0| 6f 64 75 6c 65 2c 20 6f | 72 20 30 0d 30 09 09 09 |odule, o|r 0.0...|
|00000bd0| 76 61 6c 75 65 09 09 63 | 6f 6d 70 5f 73 65 67 23 |value..c|omp_seg#|
|00000be0| 09 09 5c 20 63 6f 64 65 | 20 73 65 67 23 20 6f 66 |..\ code| seg# of|
|00000bf0| 20 6d 6f 64 75 6c 65 20 | 62 65 69 6e 67 20 63 6f | module |being co|
|00000c00| 6d 70 69 6c 65 64 2c 20 | 6f 72 20 30 0d 30 09 09 |mpiled, |or 0.0..|
|00000c10| 09 76 61 6c 75 65 09 09 | 6c 61 73 74 5f 52 50 5f |.value..|last_RP_|
|00000c20| 73 65 67 23 09 5c 20 73 | 65 67 23 20 6f 66 20 6c |seg#.\ s|eg# of l|
|00000c30| 61 73 74 20 72 65 6c 6f | 63 20 70 6f 69 6e 74 65 |ast relo|c pointe|
|00000c40| 72 20 70 72 6f 63 65 73 | 73 65 64 20 62 79 20 40 |r proces|sed by @|
|00000c50| 61 62 73 0d 0d 30 09 09 | 09 76 61 6c 75 65 09 09 |abs..0..|.value..|
|00000c60| 70 72 65 76 5f 43 44 50 | 09 09 5c 20 75 73 65 64 |prev_CDP|..\ used|
|00000c70| 20 69 6e 20 66 69 6e 64 | 69 6e 67 20 72 61 6e 67 | in find|ing rang|
|00000c80| 65 20 66 6f 72 20 66 69 | 78 5f 63 61 63 68 65 73 |e for fi|x_caches|
|00000c90| 0d 0d 30 09 09 09 76 61 | 6c 75 65 09 09 50 41 44 |..0...va|lue..PAD|
|00000ca0| 0d 30 09 09 09 76 61 6c | 75 65 09 09 54 49 42 0d |.0...val|ue..TIB.|
|00000cb0| 30 09 09 09 76 61 6c 75 | 65 09 09 5e 65 72 72 44 |0...valu|e..^errD|
|00000cc0| 75 6d 70 0d 30 09 09 09 | 76 61 6c 75 65 09 09 74 |ump.0...|value..t|
|00000cd0| 68 65 52 67 6e 0d 30 09 | 09 09 76 61 6c 75 65 09 |heRgn.0.|..value.|
|00000ce0| 09 53 50 30 0d 30 09 09 | 09 76 61 6c 75 65 09 09 |.SP0.0..|.value..|
|00000cf0| 52 50 30 0d 30 09 09 09 | 76 61 6c 75 65 09 09 46 |RP0.0...|value..F|
|00000d00| 53 50 30 0d 30 09 09 09 | 76 61 6c 75 65 09 09 43 |SP0.0...|value..C|
|00000d10| 4f 4e 54 45 58 54 0d 0d | 66 61 6c 73 65 09 09 76 |ONTEXT..|false..v|
|00000d20| 61 6c 75 65 09 09 69 6e | 73 74 6c 64 3f 0d 74 72 |alue..in|stld?.tr|
|00000d30| 75 65 09 09 76 61 6c 75 | 65 09 09 66 57 69 6e 64 |ue..valu|e..fWind|
|00000d40| 3f 0d 66 61 6c 73 65 09 | 09 76 61 6c 75 65 09 09 |?.false.|.value..|
|00000d50| 45 4d 49 54 3f 0d 0d 30 | 09 09 09 76 61 6c 75 65 |EMIT?..0|...value|
|00000d60| 09 09 63 6f 64 65 5f 73 | 74 61 72 74 0d 30 09 09 |..code_s|tart.0..|
|00000d70| 09 76 61 6c 75 65 09 09 | 6e 75 63 5f 63 6f 64 65 |.value..|nuc_code|
|00000d80| 5f 73 74 61 72 74 0d 30 | 09 09 09 76 61 6c 75 65 |_start.0|...value|
|00000d90| 09 09 63 6f 64 65 5f 6c | 69 6d 69 74 0d 0d 30 09 |..code_l|imit..0.|
|00000da0| 09 09 76 61 6c 75 65 09 | 09 64 61 74 61 5f 73 74 |..value.|.data_st|
|00000db0| 61 72 74 0d 30 09 09 09 | 76 61 6c 75 65 09 09 6e |art.0...|value..n|
|00000dc0| 75 63 5f 64 61 74 61 5f | 73 74 61 72 74 0d 30 09 |uc_data_|start.0.|
|00000dd0| 09 09 76 61 6c 75 65 09 | 09 64 61 74 61 5f 6c 69 |..value.|.data_li|
|00000de0| 6d 69 74 0d 0d 30 09 09 | 09 76 61 6c 75 65 09 09 |mit..0..|.value..|
|00000df0| 53 59 53 54 45 4d 5f 45 | 52 52 23 0d 0d 66 61 6c |SYSTEM_E|RR#..fal|
|00000e00| 73 65 09 09 76 61 6c 75 | 65 09 09 62 75 67 74 65 |se..valu|e..bugte|
|00000e10| 73 74 3f 0d 0d 09 09 09 | 76 61 72 69 61 62 6c 65 |st?.....|variable|
|00000e20| 09 66 74 65 6d 70 09 34 | 20 72 65 73 65 72 76 65 |.ftemp.4| reserve|
|00000e30| 09 09 5c 20 74 65 6d 70 | 20 61 72 65 61 20 66 6f |..\ temp| area fo|
|00000e40| 72 20 46 50 20 73 74 75 | 66 66 0d 0d 2d 31 09 09 |r FP stu|ff..-1..|
|00000e50| 09 76 61 6c 75 65 09 09 | 6d 6f 64 63 6f 64 65 5f |.value..|modcode_|
|00000e60| 63 6f 6d 70 5f 73 74 61 | 72 74 0d 2d 31 09 09 09 |comp_sta|rt.-1...|
|00000e70| 76 61 6c 75 65 09 09 6d | 6f 64 64 61 74 61 5f 63 |value..m|oddata_c|
|00000e80| 6f 6d 70 5f 73 74 61 72 | 74 0d 0d 30 09 09 09 76 |omp_star|t..0...v|
|00000e90| 61 6c 75 65 09 09 63 6f | 6d 70 6d 6f 64 09 09 5c |alue..co|mpmod..\|
|00000ea0| 20 61 64 64 72 20 6f 66 | 20 6d 6f 64 75 6c 65 20 | addr of| module |
|00000eb0| 6f 62 6a 65 63 74 20 64 | 75 72 69 6e 67 20 63 6f |object d|uring co|
|00000ec0| 6d 70 69 6c 61 74 69 6f | 6e 0d 09 09 09 09 09 09 |mpilatio|n.......|
|00000ed0| 09 09 09 5c 20 20 6f 66 | 20 74 68 61 74 20 6d 6f |...\ of| that mo|
|00000ee0| 64 75 6c 65 2c 20 6f 74 | 68 65 72 77 69 73 65 20 |dule, ot|herwise |
|00000ef0| 7a 65 72 6f 0d 0d 36 34 | 09 09 09 63 6f 6e 73 74 |zero..64|...const|
|00000f00| 61 6e 74 09 6d 61 78 5f | 73 65 67 73 09 5c 20 61 |ant.max_|segs.\ a|
|00000f10| 6c 6c 6f 77 73 20 75 73 | 20 33 31 20 6d 6f 64 75 |llows us| 31 modu|
|00000f20| 6c 65 73 2c 20 73 69 6e | 63 65 20 65 61 63 68 0d |les, sin|ce each.|
|00000f30| 09 09 09 09 09 09 09 09 | 09 5c 20 68 61 73 20 61 |........|.\ has a|
|00000f40| 20 63 6f 64 65 20 61 6e | 64 20 64 61 74 61 20 73 | code an|d data s|
|00000f50| 65 67 6d 65 6e 74 2e 0d | 09 09 09 09 09 09 09 09 |egment..|........|
|00000f60| 09 5c 20 43 68 61 6e 67 | 65 20 69 66 20 6e 65 63 |.\ Chang|e if nec|
|00000f70| 65 73 73 61 72 79 2e 0d | 0d 09 09 09 76 61 72 69 |essary..|....vari|
|00000f80| 61 62 6c 65 09 73 65 67 | 54 61 62 6c 65 09 6d 61 |able.seg|Table.ma|
|00000f90| 78 5f 73 65 67 73 20 33 | 20 3c 3c 20 20 72 65 73 |x_segs 3| << res|
|00000fa0| 65 72 76 65 0d 0d 0d 66 | 6f 72 77 61 72 64 09 44 |erve...f|orward.D|
|00000fb0| 49 45 09 09 09 5c 20 28 | 20 65 72 72 23 20 2d 2d |IE...\ (| err# --|
|00000fc0| 20 29 20 20 6f 75 72 20 | 6e 6f 72 6d 61 6c 20 4d | ) our |normal M|
|00000fd0| 6f 70 73 20 65 72 72 6f | 72 20 68 61 6e 64 6c 69 |ops erro|r handli|
|00000fe0| 6e 67 20 77 6f 72 64 0d | 66 6f 72 77 61 72 64 20 |ng word.|forward |
|00000ff0| 52 55 4e 09 09 09 5c 20 | 28 20 2d 2d 20 29 20 20 |RUN...\ |( -- ) |
|00001000| 73 74 61 72 74 73 20 72 | 75 6e 6e 69 6e 67 20 61 |starts r|unning a|
|00001010| 66 74 65 72 20 77 65 20 | 73 65 74 20 65 76 65 72 |fter we |set ever|
|00001020| 79 74 68 69 6e 67 20 75 | 70 0d 66 6f 72 77 61 72 |ything u|p.forwar|
|00001030| 64 20 45 4e 54 45 52 4d | 4f 44 09 5c 20 28 20 78 |d ENTERM|OD.\ ( x|
|00001040| 74 20 2d 2d 20 29 20 20 | 69 6e 20 7a 4d 6f 64 75 |t -- ) |in zModu|
|00001050| 6c 65 73 2e 20 20 43 61 | 6c 6c 73 20 61 20 77 6f |les. Ca|lls a wo|
|00001060| 72 64 20 69 6e 20 61 20 | 6d 6f 64 75 6c 65 2e 0d |rd in a |module..|
|00001070| 66 6f 72 77 61 72 64 20 | 2e 53 0d 66 6f 72 77 61 |forward |.S.forwa|
|00001080| 72 64 20 46 49 58 5f 43 | 41 43 48 45 53 0d 66 6f |rd FIX_C|ACHES.fo|
|00001090| 72 77 61 72 64 20 66 6d | 72 6b 0d 0d 0d 5c 20 3a |rward fm|rk...\ :|
|000010a0| 20 48 45 52 45 09 09 69 | 6e 6c 69 6e 65 7b 20 44 | HERE..i|nline{ D|
|000010b0| 50 7d 20 20 3b 0d 0d 0d | 28 2a 09 09 3d 3d 3d 3d |P} ;...|(*..====|
|000010c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010d0| 3d 3d 20 4f 62 6a 65 63 | 74 73 2c 20 65 74 63 2e |== Objec|ts, etc.|
|000010e0| 20 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | =======|========|
|000010f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0d 09 |========|=====...|
|00001100| 54 68 65 73 65 20 61 72 | 65 20 74 68 65 20 6f 6e |These ar|e the on|
|00001110| 65 73 20 77 65 20 6e 65 | 65 64 20 66 6f 72 20 74 |es we ne|ed for t|
|00001120| 68 65 20 76 65 72 79 20 | 65 61 72 6c 79 20 73 74 |he very |early st|
|00001130| 75 66 66 2c 20 62 65 66 | 6f 72 65 20 6f 75 72 20 |uff, bef|ore our |
|00001140| 66 75 6c 6c 20 6f 62 6a | 65 63 74 0d 09 68 61 6e |full obj|ect..han|
|00001150| 64 6c 69 6e 67 20 69 73 | 20 6c 6f 61 64 65 64 2e |dling is| loaded.|
|00001160| 20 20 57 65 20 74 68 65 | 72 65 66 6f 72 65 20 6e | We the|refore n|
|00001170| 65 65 64 20 74 6f 20 77 | 69 6e 64 20 74 68 65 6d |eed to w|ind them|
|00001180| 20 62 79 20 68 61 6e 64 | 2c 20 61 6e 64 20 69 6e | by hand|, and in|
|00001190| 20 73 6f 6d 65 0d 09 63 | 61 73 65 73 20 70 61 74 | some..c|ases pat|
|000011a0| 63 68 20 74 68 65 6d 20 | 6c 61 74 65 72 2e 0d 0d |ch them |later...|
|000011b0| 2a 29 0d 0d 09 09 09 63 | 72 65 61 74 65 09 09 46 |*).....c|reate..F|
|000011c0| 46 43 42 20 20 20 38 20 | 61 6c 6c 6f 74 09 09 5c |FCB 8 |allot..\|
|000011d0| 20 77 69 6c 6c 20 62 65 | 20 61 6e 20 6f 62 6a 65 | will be| an obje|
|000011e0| 63 74 20 70 6f 69 6e 74 | 65 72 0d 0d 0d 09 09 09 |ct point|er......|
|000011f0| 28 63 72 65 61 74 65 4f | 62 6a 29 20 66 57 69 6e |(createO|bj) fWin|
|00001200| 64 0d 09 09 09 09 24 20 | 39 43 09 61 6c 6c 6f 74 |d.....$ |9C.allot|
|00001210| 0d 09 09 09 09 38 09 09 | 61 6c 6c 6f 74 0d 09 09 |.....8..|allot...|
|00001220| 09 09 24 20 32 45 09 61 | 6c 6c 6f 74 0d 09 09 09 |..$ 2E.a|llot....|
|00001230| 09 0d 0d 09 09 09 28 63 | 72 65 61 74 65 4f 62 6a |......(c|reateObj|
|00001240| 29 20 66 70 52 65 63 74 | 0d 09 09 09 09 38 09 09 |) fpRect|.....8..|
|00001250| 61 6c 6c 6f 74 0d 09 09 | 09 0d 09 09 09 28 63 72 |allot...|.....(cr|
|00001260| 65 61 74 65 4f 62 6a 29 | 20 66 45 76 65 6e 74 0d |eateObj)| fEvent.|
|00001270| 09 09 09 09 31 38 09 09 | 61 6c 6c 6f 74 09 09 09 |....18..|allot...|
|00001280| 5c 20 69 76 61 72 73 20 | 73 70 61 63 65 0d 09 09 |\ ivars |space...|
|00001290| 09 09 34 20 20 2c 09 09 | 09 09 09 5c 20 69 6e 64 |..4 ,..|...\ ind|
|000012a0| 65 78 65 64 20 65 6c 74 | 20 77 69 64 74 68 20 2d |exed elt| width -|
|000012b0| 20 26 26 26 26 20 63 68 | 61 6e 67 65 64 20 66 72 | &&&& ch|anged fr|
|000012c0| 6f 6d 20 32 20 74 6f 20 | 34 20 62 79 74 65 73 0d |om 2 to |4 bytes.|
|000012d0| 09 09 09 09 32 33 20 2c | 09 09 09 09 09 5c 20 23 |....23 ,|.....\ #|
|000012e0| 65 6c 74 73 20 2d 20 31 | 0d 09 09 09 09 32 34 20 |elts - 1|.....24 |
|000012f0| 34 2a 09 61 6c 6c 6f 74 | 09 09 09 5c 20 61 6c 6c |4*.allot|...\ all|
|00001300| 6f 63 61 74 65 20 73 70 | 61 63 65 20 66 6f 72 20 |ocate sp|ace for |
|00001310| 74 68 65 6d 0d 09 09 09 | 09 0d 09 09 09 09 09 09 |them....|........|
|00001320| 5c 20 23 23 20 6e 6f 74 | 65 20 77 65 20 73 65 74 |\ ## not|e we set|
|00001330| 20 74 68 65 20 6f 66 66 | 73 65 74 20 74 6f 20 74 | the off|set to t|
|00001340| 68 65 20 69 6e 64 65 78 | 65 64 20 61 72 65 61 20 |he index|ed area |
|00001350| 69 6e 20 66 69 6c 65 20 | 45 76 65 6e 74 0d 09 09 |in file |Event...|
|00001360| 09 09 09 09 5c 20 20 77 | 68 65 6e 20 77 65 20 73 |....\ w|hen we s|
|00001370| 65 74 20 74 68 65 20 63 | 6c 61 73 73 20 70 6f 69 |et the c|lass poi|
|00001380| 6e 74 65 72 2c 20 73 69 | 6e 63 65 20 74 68 61 74 |nter, si|nce that|
|00001390| 27 73 20 77 68 61 74 20 | 77 65 20 64 6f 20 6f 6e |'s what |we do on|
|000013a0| 0d 09 09 09 09 09 09 5c | 20 20 74 68 65 20 36 38 |.......\| the 68|
|000013b0| 6b 20 61 6e 64 20 61 6c | 73 6f 20 69 74 27 73 20 |k and al|so it's |
|000013c0| 65 61 73 69 65 72 20 74 | 6f 20 6d 61 6b 65 20 63 |easier t|o make c|
|000013d0| 68 61 6e 67 65 73 2e 0d | 0d 0d 30 09 09 09 76 61 |hanges..|..0...va|
|000013e0| 6c 75 65 09 09 49 6e 74 | 65 72 66 61 63 65 4c 69 |lue..Int|erfaceLi|
|000013f0| 62 5f 63 6f 6e 6e 49 44 | 0d 30 09 09 09 76 61 6c |b_connID|.0...val|
|00001400| 75 65 09 09 4d 61 74 68 | 4c 69 62 5f 63 6f 6e 6e |ue..Math|Lib_conn|
|00001410| 49 44 0d 0d 09 09 09 76 | 61 72 69 61 62 6c 65 09 |ID.....v|ariable.|
|00001420| 76 43 6f 6e 6e 49 44 0d | 09 09 09 76 61 72 69 61 |vConnID.|...varia|
|00001430| 62 6c 65 09 6d 61 69 6e | 41 64 64 72 0d 09 09 09 |ble.main|Addr....|
|00001440| 76 61 72 69 61 62 6c 65 | 09 73 79 6d 41 64 64 72 |variable|.symAddr|
|00001450| 0d 09 09 09 76 61 72 69 | 61 62 6c 65 09 73 79 6d |....vari|able.sym|
|00001460| 43 6c 61 73 73 0d 0d 24 | 20 31 32 33 34 20 2c 0d |Class..$| 1234 ,.|
|00001470| 09 09 09 63 72 65 61 74 | 65 09 09 71 64 09 09 35 |...creat|e..qd..5|
|00001480| 31 32 20 61 6c 6c 6f 74 | 0d 24 20 34 35 36 37 20 |12 allot|.$ 4567 |
|00001490| 2c 0d 09 09 09 09 09 09 | 5c 20 73 69 7a 65 20 6f |,.......|\ size o|
|000014a0| 66 20 51 44 20 67 6c 6f | 62 61 6c 73 20 2d 20 32 |f QD glo|bals - 2|
|000014b0| 30 36 20 70 6c 75 73 20 | 61 20 67 65 6e 65 72 6f |06 plus |a genero|
|000014c0| 75 73 20 73 61 66 65 74 | 79 0d 09 09 09 09 09 09 |us safet|y.......|
|000014d0| 5c 20 20 6d 61 72 67 69 | 6e 20 77 68 69 63 68 20 |\ margi|n which |
|000014e0| 77 65 20 73 65 65 6d 20 | 74 6f 20 6e 65 65 64 20 |we seem |to need |
|000014f0| 66 6f 72 20 73 6f 6d 65 | 20 75 6e 6b 6e 6f 77 6e |for some| unknown|
|00001500| 0d 09 09 09 09 09 09 5c | 20 20 72 65 61 73 6f 6e |.......\| reason|
|00001510| 0d 0d 09 09 09 63 72 65 | 61 74 65 09 09 65 72 72 |.....cre|ate..err|
|00001520| 4e 61 6d 65 09 09 5c 20 | 63 61 6e 20 75 73 65 20 |Name..\ |can use |
|00001530| 73 61 6d 65 20 73 70 61 | 63 65 20 61 73 20 74 68 |same spa|ce as th|
|00001540| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 3a 0d 0d 09 09 |e follow|ing:....|
|00001550| 09 63 72 65 61 74 65 09 | 09 42 55 46 32 35 35 09 |.create.|.BUF255.|
|00001560| 09 32 35 36 20 61 6c 6c | 6f 74 09 09 5c 20 62 75 |.256 all|ot..\ bu|
|00001570| 66 66 65 72 20 66 6f 72 | 20 73 74 72 69 6e 67 20 |ffer for| string |
|00001580| 6f 70 65 72 61 74 69 6f | 6e 73 0d 0d 0d 5c 20 77 |operatio|ns...\ w|
|00001590| 65 20 6e 65 65 64 20 74 | 68 65 73 65 20 76 65 72 |e need t|hese ver|
|000015a0| 79 20 65 61 72 6c 79 3a | 0d 0d 5c 20 24 20 42 44 |y early:|..\ $ BD|
|000015b0| 33 45 20 30 20 20 73 70 | 65 63 69 61 6c 5f 6f 70 |3E 0 sp|ecial_op|
|000015c0| 09 09 3e 52 0d 5c 20 24 | 20 42 44 33 46 20 30 20 |..>R.\ $| BD3F 0 |
|000015d0| 20 73 70 65 63 69 61 6c | 5f 6f 70 09 09 52 3e 0d | special|_op..R>.|
|000015e0| 0d 5c 20 52 40 20 69 73 | 20 64 65 66 69 6e 65 64 |.\ R@ is| defined|
|000015f0| 20 69 6e 20 63 67 35 20 | 73 69 6e 63 65 20 69 74 | in cg5 |since it|
|00001600| 27 73 20 6a 75 73 74 20 | 61 20 62 61 73 65 2d 64 |'s just |a base-d|
|00001610| 69 73 70 6c 20 66 65 74 | 63 68 0d 0d 0d 5c 20 43 |ispl fet|ch...\ C|
|00001620| 75 72 72 65 6e 74 6c 79 | 20 49 27 6d 20 75 73 69 |urrently| I'm usi|
|00001630| 6e 67 20 6c 6f 63 6b 65 | 64 20 68 61 6e 64 6c 65 |ng locke|d handle|
|00001640| 73 20 66 6f 72 20 74 68 | 69 6e 67 73 20 6c 69 6b |s for th|ings lik|
|00001650| 65 20 74 68 65 20 64 69 | 63 74 69 6f 6e 61 72 79 |e the di|ctionary|
|00001660| 0d 5c 20 20 61 72 65 61 | 20 2d 20 49 20 63 6f 75 |.\ area| - I cou|
|00001670| 6c 64 20 75 73 65 20 70 | 6f 69 6e 74 65 72 73 20 |ld use p|ointers |
|00001680| 62 75 74 20 75 73 69 6e | 67 20 68 61 6e 64 6c 65 |but usin|g handle|
|00001690| 73 20 61 6c 6c 6f 77 73 | 20 74 68 65 20 70 6f 73 |s allows| the pos|
|000016a0| 73 69 62 69 6c 69 74 79 | 0d 5c 20 20 6f 66 20 61 |sibility|.\ of a|
|000016b0| 20 64 79 6e 61 6d 69 63 | 20 73 69 7a 65 20 63 68 | dynamic| size ch|
|000016c0| 61 6e 67 65 20 69 66 20 | 77 65 20 65 76 65 72 20 |ange if |we ever |
|000016d0| 77 61 6e 74 20 69 74 2e | 0d 0d 3a 20 6c 6f 63 6b |want it.|..: lock|
|000016e0| 65 64 48 6e 64 6c 20 7b | 20 73 69 7a 20 5c 20 68 |edHndl {| siz \ h|
|000016f0| 6e 64 6c 20 61 64 64 72 | 20 2d 2d 20 61 64 64 72 |ndl addr| -- addr|
|00001700| 20 7d 0d 09 73 69 7a 20 | 25 5f 4e 65 77 48 61 6e | }..siz |%_NewHan|
|00001710| 64 6c 65 43 6c 65 61 72 | 20 20 2d 3e 20 68 6e 64 |dleClear| -> hnd|
|00001720| 6c 0d 09 68 6e 64 6c 20 | 25 5f 4d 6f 76 65 48 48 |l..hndl |%_MoveHH|
|00001730| 69 0d 09 68 6e 64 6c 20 | 25 5f 48 4c 6f 63 6b 0d |i..hndl |%_HLock.|
|00001740| 09 68 6e 64 6c 20 40 20 | 20 2d 3e 20 61 64 64 72 |.hndl @ | -> addr|
|00001750| 0d 09 61 64 64 72 0d 3b | 0d 0d 5c 20 69 6e 6c 69 |..addr.;|..\ inli|
|00001760| 6e 65 20 63 61 6c 6c 73 | 20 61 72 65 20 61 20 62 |ne calls| are a b|
|00001770| 69 74 20 6c 6f 6e 67 2d | 77 69 6e 64 65 64 2c 20 |it long-|winded, |
|00001780| 73 6f 20 68 65 72 65 20 | 77 65 20 66 61 63 74 6f |so here |we facto|
|00001790| 72 20 6f 75 74 20 61 20 | 63 6f 75 70 6c 65 20 74 |r out a |couple t|
|000017a0| 68 61 74 0d 5c 20 20 77 | 65 20 6e 65 65 64 20 73 |hat.\ w|e need s|
|000017b0| 65 76 65 72 61 6c 20 74 | 69 6d 65 73 3a 0d 0d 3a |everal t|imes:..:|
|000017c0| 20 42 59 45 09 25 5f 45 | 78 69 74 54 6f 53 68 65 | BYE.%_E|xitToShe|
|000017d0| 6c 6c 20 20 3b 0d 0d 3a | 20 63 61 6c 6c 5f 42 6c |ll ;..:| call_Bl|
|000017e0| 6f 63 6b 4d 6f 76 65 09 | 09 5c 20 28 20 73 72 63 |ockMove.|.\ ( src|
|000017f0| 20 64 73 74 20 6c 65 6e | 20 2d 2d 20 29 20 20 4a | dst len| -- ) J|
|00001800| 75 73 74 20 74 6f 20 73 | 61 76 65 20 73 6f 6d 65 |ust to s|ave some|
|00001810| 20 73 70 61 63 65 2c 20 | 73 69 6e 63 65 0d 09 09 | space, |since...|
|00001820| 09 09 09 09 5c 20 20 69 | 6e 6c 69 6e 65 20 63 61 |....\ i|nline ca|
|00001830| 6c 6c 73 20 61 72 65 20 | 61 20 62 69 74 20 6c 6f |lls are |a bit lo|
|00001840| 6e 67 2d 77 69 6e 64 65 | 64 2e 20 20 57 65 20 75 |ng-winde|d. We u|
|00001850| 73 65 20 42 6c 6f 63 6b | 4d 6f 76 65 0d 09 09 09 |se Block|Move....|
|00001860| 09 09 09 5c 20 20 61 74 | 20 74 68 69 73 20 73 74 |...\ at| this st|
|00001870| 61 67 65 20 72 61 74 68 | 65 72 20 74 68 61 6e 20 |age rath|er than |
|00001880| 42 6c 6f 63 6b 4d 6f 76 | 65 44 61 74 61 2c 20 73 |BlockMov|eData, s|
|00001890| 69 6e 63 65 20 77 65 20 | 0d 09 09 09 09 09 09 5c |ince we |.......\|
|000018a0| 20 20 6d 69 67 68 74 20 | 62 65 20 6d 6f 76 69 6e | might |be movin|
|000018b0| 67 20 63 6f 64 65 2e 0d | 09 25 5f 42 6c 6f 63 6b |g code..|.%_Block|
|000018c0| 4d 6f 76 65 20 20 3b 0d | 0d 0d 3a 20 42 45 45 50 |Move ;.|..: BEEP|
|000018d0| 0d 09 25 5f 53 79 73 42 | 65 65 70 20 20 3b 0d 0d |..%_SysB|eep ;..|
|000018e0| 0d 3a 20 3f 73 74 61 72 | 74 55 70 45 72 72 6f 72 |.: ?star|tUpError|
|000018f0| 09 5c 20 28 20 65 72 72 | 23 20 2d 2d 20 29 0d 09 |.\ ( err|# -- )..|
|00001900| 64 75 70 0d 09 49 46 20 | 20 33 20 62 65 65 70 0d |dup..IF | 3 beep.|
|00001910| 09 09 62 79 65 0d 09 45 | 4c 53 45 0d 09 09 64 72 |..bye..E|LSE...dr|
|00001920| 6f 70 0d 09 54 48 45 4e | 20 20 3b 0d 0d 3a 20 3f |op..THEN| ;..: ?|
|00001930| 73 79 6d 62 6f 6c 45 72 | 72 6f 72 09 5c 20 28 20 |symbolEr|ror.\ ( |
|00001940| 65 72 72 23 20 2d 2d 20 | 29 0d 09 3f 64 75 70 20 |err# -- |)..?dup |
|00001950| 20 30 45 58 49 54 0d 09 | 2d 3e 20 73 79 73 74 65 | 0EXIT..|-> syste|
|00001960| 6d 5f 65 72 72 23 20 20 | 32 31 33 20 64 69 65 20 |m_err# |213 die |
|00001970| 20 3b 0d 0d 0d 3a 20 53 | 57 49 54 43 48 5f 4d 45 | ;...: S|WITCH_ME|
|00001980| 20 20 7b 20 65 6e 74 50 | 74 20 61 64 64 72 20 2d | { entP|t addr -|
|00001990| 2d 20 7d 0d 09 6c 72 3e | 74 72 65 67 09 09 09 09 |- }..lr>|treg....|
|000019a0| 09 5c 20 67 65 74 73 20 | 74 68 65 20 72 65 74 75 |.\ gets |the retu|
|000019b0| 72 6e 20 61 64 64 72 20 | 74 6f 20 74 72 65 67 0d |rn addr |to treg.|
|000019c0| 09 74 72 65 67 20 65 6e | 74 50 74 20 2d 09 09 09 |.treg en|tPt -...|
|000019d0| 5c 20 6f 66 66 73 65 74 | 20 6f 66 20 52 41 20 69 |\ offset| of RA i|
|000019e0| 6e 20 63 6f 64 65 20 62 | 6c 6f 63 6b 0d 09 61 64 |n code b|lock..ad|
|000019f0| 64 72 20 2b 09 09 09 09 | 09 5c 20 65 71 75 69 76 |dr +....|.\ equiv|
|00001a00| 61 6c 65 6e 74 20 52 41 | 20 69 6e 20 6e 65 77 20 |alent RA| in new |
|00001a10| 63 6f 64 65 20 62 6c 6f | 63 6b 0d 09 2d 3e 20 74 |code blo|ck..-> t|
|00001a20| 72 65 67 20 20 74 72 65 | 67 3e 6c 72 0d 3b 0d 0d |reg tre|g>lr.;..|
|00001a30| 0d 5c 20 40 41 42 53 20 | 61 6e 64 20 45 58 45 43 |.\ @ABS |and EXEC|
|00001a40| 55 54 45 20 68 61 76 65 | 20 74 6f 20 63 6f 6d 65 |UTE have| to come|
|00001a50| 20 68 65 72 65 2c 20 73 | 69 6e 63 65 20 74 68 65 | here, s|ince the|
|00001a60| 79 27 72 65 20 69 6e 76 | 6f 6b 65 64 20 62 79 20 |y're inv|oked by |
|00001a70| 65 78 65 63 75 74 69 6e | 67 0d 5c 20 20 61 20 76 |executin|g.\ a v|
|00001a80| 65 63 74 6f 72 2c 20 77 | 68 69 63 68 20 77 65 20 |ector, w|hich we |
|00001a90| 6e 65 65 64 20 69 6e 20 | 53 45 54 55 50 2e 0d 0d |need in |SETUP...|
|00001aa0| 0d 3a 20 28 40 41 42 53 | 29 20 20 7b 20 61 64 64 |.: (@ABS|) { add|
|00001ab0| 72 20 5c 20 72 65 6c 6f | 63 41 64 64 72 20 73 65 |r \ relo|cAddr se|
|00001ac0| 67 23 20 62 61 73 65 41 | 64 64 72 20 64 69 73 70 |g# baseA|ddr disp|
|00001ad0| 6c 20 5e 53 54 20 2d 2d | 20 61 62 73 41 64 64 72 |l ^ST --| absAddr|
|00001ae0| 20 7c 20 2d 2d 20 30 20 | 7d 0d 09 61 64 64 72 20 | | -- 0 |}..addr |
|00001af0| 40 20 20 2d 3e 20 72 65 | 6c 6f 63 41 64 64 72 0d |@ -> re|locAddr.|
|00001b00| 09 72 65 6c 6f 63 41 64 | 64 72 20 20 24 20 66 66 |.relocAd|dr $ ff|
|00001b10| 66 66 66 66 20 61 6e 64 | 20 20 2d 3e 20 64 69 73 |ffff and| -> dis|
|00001b20| 70 6c 0d 09 72 65 6c 6f | 63 41 64 64 72 20 20 32 |pl..relo|cAddr 2|
|00001b30| 34 20 3e 3e 20 20 64 75 | 70 20 2d 3e 20 73 65 67 |4 >> du|p -> seg|
|00001b40| 23 20 20 0d 09 64 75 70 | 20 31 20 61 6e 64 20 4e |# ..dup| 1 and N|
|00001b50| 49 46 20 2d 3e 20 6c 61 | 73 74 5f 52 50 5f 73 65 |IF -> la|st_RP_se|
|00001b60| 67 23 20 45 4c 53 45 20 | 64 72 6f 70 20 54 48 45 |g# ELSE |drop THE|
|00001b70| 4e 0d 0d 09 73 65 67 23 | 20 38 20 3c 20 20 73 65 |N...seg#| 8 < se|
|00001b80| 67 23 20 20 6d 61 78 5f | 73 65 67 73 20 38 20 2b |g# max_|segs 8 +|
|00001b90| 20 3e 3d 20 20 6f 72 0d | 09 49 46 09 30 20 20 45 | >= or.|.IF.0 E|
|00001ba0| 58 49 54 20 20 54 48 45 | 4e 0d 09 0d 09 73 65 67 |XIT THE|N....seg|
|00001bb0| 23 20 38 20 2d 20 20 38 | 20 2a 20 20 73 65 67 54 |# 8 - 8| * segT|
|00001bc0| 61 62 6c 65 20 2b 20 20 | 2d 3e 20 5e 53 54 0d 09 |able + |-> ^ST..|
|00001bd0| 09 09 09 09 09 09 09 5c | 20 67 65 74 20 61 64 64 |.......\| get add|
|00001be0| 72 20 6f 66 20 74 68 65 | 20 73 65 67 20 74 61 62 |r of the| seg tab|
|00001bf0| 6c 65 20 65 6e 74 72 79 | 20 77 65 20 77 61 6e 74 |le entry| we want|
|00001c00| 0d 0d 5c 20 4f 4b 20 73 | 6f 20 66 61 72 20 2d 20 |..\ OK s|o far - |
|00001c10| 6e 6f 77 20 77 65 20 63 | 68 65 63 6b 20 69 66 20 |now we c|heck if |
|00001c20| 74 68 65 20 64 69 73 70 | 6c 20 69 73 20 77 69 74 |the disp|l is wit|
|00001c30| 68 69 6e 20 74 68 65 20 | 73 65 67 6d 65 6e 74 0d |hin the |segment.|
|00001c40| 5c 20 20 74 68 69 73 20 | 63 68 65 63 6b 20 77 69 |\ this |check wi|
|00001c50| 6c 6c 20 61 6c 73 6f 20 | 74 72 61 70 20 61 6e 20 |ll also |trap an |
|00001c60| 75 6e 61 6c 6c 6f 63 61 | 74 65 64 20 73 65 67 6d |unalloca|ted segm|
|00001c70| 65 6e 74 20 77 68 69 63 | 68 20 77 69 6c 6c 0d 5c |ent whic|h will.\|
|00001c80| 20 20 68 61 76 65 20 7a | 65 72 6f 20 6c 65 6e 67 | have z|ero leng|
|00001c90| 74 68 2e 0d 0d 09 64 69 | 73 70 6c 20 20 5e 53 54 |th....di|spl ^ST|
|00001ca0| 20 40 20 24 20 30 30 66 | 66 66 66 66 66 20 61 6e | @ $ 00f|fffff an|
|00001cb0| 64 20 20 75 3e 3d 20 20 | 49 46 20 20 30 20 45 58 |d u>= |IF 0 EX|
|00001cc0| 49 54 20 20 54 48 45 4e | 0d 09 09 09 09 09 09 09 |IT THEN|........|
|00001cd0| 09 09 09 09 5c 20 65 72 | 72 20 69 66 20 64 69 73 |....\ er|r if dis|
|00001ce0| 70 6c 20 6f 75 74 20 6f | 66 20 62 6f 75 6e 64 73 |pl out o|f bounds|
|00001cf0| 0d 09 5e 53 54 20 34 2b | 20 40 20 2d 3e 20 62 61 |..^ST 4+| @ -> ba|
|00001d00| 73 65 41 64 64 72 0d 09 | 62 61 73 65 41 64 64 72 |seAddr..|baseAddr|
|00001d10| 20 6e 69 6c 50 20 3d 20 | 49 46 20 20 32 30 36 20 | nilP = |IF 206 |
|00001d20| 64 69 65 20 20 54 48 45 | 4e 09 09 5c 20 69 6e 74 |die THE|N..\ int|
|00001d30| 65 72 6e 61 6c 20 65 72 | 72 6f 72 20 69 66 20 73 |ernal er|ror if s|
|00001d40| 65 67 20 61 62 73 65 6e | 74 0d 09 62 61 73 65 41 |eg absen|t..baseA|
|00001d50| 64 64 72 20 64 69 73 70 | 6c 20 2b 0d 3b 0d 0d 3a |ddr disp|l +.;..:|
|00001d60| 20 40 41 42 53 20 20 28 | 20 5e 72 65 6c 6f 63 41 | @ABS (| ^relocA|
|00001d70| 64 64 72 20 2d 2d 20 61 | 62 73 41 64 64 72 20 29 |ddr -- a|bsAddr )|
|00001d80| 0d 09 28 40 61 62 73 29 | 20 20 64 75 70 20 3f 45 |..(@abs)| dup ?E|
|00001d90| 58 49 54 0d 09 64 72 6f | 70 20 20 37 30 20 64 69 |XIT..dro|p 70 di|
|00001da0| 65 09 09 5c 20 22 6e 6f | 74 20 61 20 72 65 6c 6f |e..\ "no|t a relo|
|00001db0| 63 20 61 64 64 72 22 0d | 3b 0d 0d 0d 28 2a 09 46 |c addr".|;...(*.F|
|00001dc0| 6f 72 20 45 58 45 43 55 | 54 45 2c 20 77 65 20 68 |or EXECU|TE, we h|
|00001dd0| 61 76 65 20 74 6f 20 72 | 65 73 6f 72 74 20 74 6f |ave to r|esort to|
|00001de0| 20 61 73 73 65 6d 62 6c | 79 20 73 69 6e 63 65 20 | assembl|y since |
|00001df0| 77 65 20 68 61 76 65 20 | 74 6f 20 67 65 74 20 74 |we have |to get t|
|00001e00| 68 65 20 72 69 67 68 74 | 0d 09 6e 75 6d 62 65 72 |he right|..number|
|00001e10| 20 6f 66 20 73 74 61 63 | 6b 20 63 65 6c 6c 73 20 | of stac|k cells |
|00001e20| 69 6e 74 6f 20 72 65 67 | 73 20 61 73 20 72 65 71 |into reg|s as req|
|00001e30| 75 69 72 65 64 20 62 79 | 20 74 68 65 20 64 65 66 |uired by| the def|
|00001e40| 6e 20 77 65 27 72 65 20 | 63 61 6c 6c 69 6e 67 2c |n we're |calling,|
|00001e50| 20 61 6e 64 0d 09 64 69 | 74 74 6f 20 66 6f 72 20 | and..di|tto for |
|00001e60| 74 68 65 20 72 65 74 75 | 72 6e 65 64 20 72 65 73 |the retu|rned res|
|00001e70| 75 6c 74 73 2e 0d 09 0d | 09 4f 6e 20 65 6e 74 72 |ults....|.On entr|
|00001e80| 79 2c 20 72 34 20 28 54 | 4f 53 29 20 3d 20 63 66 |y, r4 (T|OS) = cf|
|00001e90| 61 20 6f 66 20 64 65 66 | 6e 2e 20 20 54 68 69 73 |a of def|n. This|
|00001ea0| 20 69 73 20 74 68 65 20 | 61 64 64 72 20 6f 66 20 | is the |addr of |
|00001eb0| 74 68 65 20 66 6c 61 67 | 20 62 79 74 65 73 2e 0d |the flag| bytes..|
|00001ec0| 09 54 68 65 20 61 63 74 | 75 61 6c 20 63 6f 64 65 |.The act|ual code|
|00001ed0| 20 73 74 61 72 74 73 20 | 32 20 62 79 74 65 73 20 | starts |2 bytes |
|00001ee0| 6c 61 74 65 72 2e 0d 09 | 0d 09 4e 6f 74 65 20 61 |later...|..Note a|
|00001ef0| 6c 6c 20 61 73 73 65 6d | 62 79 20 64 65 66 6e 73 |ll assem|by defns|
|00001f00| 20 61 72 65 20 61 73 73 | 75 6d 65 64 20 74 6f 20 | are ass|umed to |
|00001f10| 68 61 76 65 20 72 34 20 | 3d 20 54 4f 53 20 61 6e |have r4 |= TOS an|
|00001f20| 64 20 72 33 20 3d 20 73 | 65 63 6f 6e 64 2c 0d 09 |d r3 = s|econd,..|
|00001f30| 6f 6e 20 62 6f 74 68 20 | 65 6e 74 72 79 20 61 6e |on both |entry an|
|00001f40| 64 20 65 78 69 74 2e 20 | 20 57 65 20 6f 76 65 72 |d exit. | We over|
|00001f50| 72 69 64 65 20 74 68 69 | 73 20 69 6e 20 45 58 45 |ride thi|s in EXE|
|00001f60| 43 55 54 45 20 2d 20 73 | 65 65 20 74 68 65 20 63 |CUTE - s|ee the c|
|00001f70| 6f 6d 6d 65 6e 74 20 74 | 68 65 72 65 2e 0d 2a 29 |omment t|here..*)|
|00001f80| 0d 0d 66 6f 72 77 61 72 | 64 20 65 78 65 63 45 72 |..forwar|d execEr|
|00001f90| 72 0d 0d 0d 3a 70 70 63 | 5f 63 6f 64 65 20 50 55 |r...:ppc|_code PU|
|00001fa0| 53 48 45 53 0d 09 72 31 | 30 09 09 2d 33 32 09 72 |SHES..r1|0..-32.r|
|00001fb0| 53 50 09 09 73 74 77 2c | 0d 09 72 39 09 09 2d 32 |SP..stw,|..r9..-2|
|00001fc0| 38 20 72 53 50 09 09 73 | 74 77 2c 0d 09 72 38 09 |8 rSP..s|tw,..r8.|
|00001fd0| 09 2d 32 34 20 72 53 50 | 09 09 73 74 77 2c 0d 09 |.-24 rSP|..stw,..|
|00001fe0| 72 37 09 09 2d 32 30 20 | 72 53 50 09 09 73 74 77 |r7..-20 |rSP..stw|
|00001ff0| 2c 0d 09 72 36 09 09 2d | 31 36 20 72 53 50 09 09 |,..r6..-|16 rSP..|
|00002000| 73 74 77 2c 0d 09 72 35 | 09 09 2d 31 32 20 72 53 |stw,..r5|..-12 rS|
|00002010| 50 09 09 73 74 77 2c 0d | 09 72 34 09 09 2d 38 09 |P..stw,.|.r4..-8.|
|00002020| 72 53 50 09 09 73 74 77 | 2c 0d 09 72 33 09 09 2d |rSP..stw|,..r3..-|
|00002030| 34 09 72 53 50 09 09 73 | 74 77 2c 0d 09 09 09 09 |4.rSP..s|tw,.....|
|00002040| 09 62 6c 72 2c 0d 3b 70 | 70 63 5f 63 6f 64 65 0d |.blr,.;p|pc_code.|
|00002050| 0d 0d 3a 70 70 63 5f 63 | 6f 64 65 20 50 55 4c 4c |..:ppc_c|ode PULL|
|00002060| 53 0d 09 72 31 30 09 09 | 34 09 72 53 50 09 09 6c |S..r10..|4.rSP..l|
|00002070| 77 7a 75 2c 0d 09 72 39 | 09 09 34 09 72 53 50 09 |wzu,..r9|..4.rSP.|
|00002080| 09 6c 77 7a 75 2c 0d 09 | 72 38 09 09 34 09 72 53 |.lwzu,..|r8..4.rS|
|00002090| 50 09 09 6c 77 7a 75 2c | 0d 09 72 37 09 09 34 09 |P..lwzu,|..r7..4.|
|000020a0| 72 53 50 09 09 6c 77 7a | 75 2c 0d 09 72 36 09 09 |rSP..lwz|u,..r6..|
|000020b0| 34 09 72 53 50 09 09 6c | 77 7a 75 2c 0d 09 72 35 |4.rSP..l|wzu,..r5|
|000020c0| 09 09 34 09 72 53 50 09 | 09 6c 77 7a 75 2c 0d 09 |..4.rSP.|.lwzu,..|
|000020d0| 72 34 09 09 34 09 72 53 | 50 09 09 6c 77 7a 75 2c |r4..4.rS|P..lwzu,|
|000020e0| 0d 09 72 33 09 09 34 09 | 72 53 50 09 09 6c 77 7a |..r3..4.|rSP..lwz|
|000020f0| 75 2c 0d 09 09 09 09 09 | 09 62 6c 72 2c 0d 3b 70 |u,......|.blr,.;p|
|00002100| 70 63 5f 63 6f 64 65 0d | 0d 0d 3a 70 70 63 5f 63 |pc_code.|..:ppc_c|
|00002110| 6f 64 65 20 46 50 55 53 | 48 45 53 0d 09 66 72 38 |ode FPUS|HES..fr8|
|00002120| 09 09 2d 36 34 09 72 46 | 53 50 09 73 74 66 64 2c |..-64.rF|SP.stfd,|
|00002130| 0d 09 66 72 37 09 09 2d | 35 36 20 72 46 53 50 09 |..fr7..-|56 rFSP.|
|00002140| 73 74 66 64 2c 0d 09 66 | 72 36 09 09 2d 34 38 20 |stfd,..f|r6..-48 |
|00002150| 72 46 53 50 09 73 74 66 | 64 2c 0d 09 66 72 35 09 |rFSP.stf|d,..fr5.|
|00002160| 09 2d 34 30 20 72 46 53 | 50 09 73 74 66 64 2c 0d |.-40 rFS|P.stfd,.|
|00002170| 09 66 72 34 09 09 2d 33 | 32 20 72 46 53 50 09 73 |.fr4..-3|2 rFSP.s|
|00002180| 74 66 64 2c 0d 09 66 72 | 33 09 09 2d 32 34 20 72 |tfd,..fr|3..-24 r|
|00002190| 46 53 50 09 73 74 66 64 | 2c 0d 09 66 72 32 09 09 |FSP.stfd|,..fr2..|
|000021a0| 2d 31 36 09 72 46 53 50 | 09 73 74 66 64 2c 0d 09 |-16.rFSP|.stfd,..|
|000021b0| 66 72 31 09 09 2d 38 09 | 72 46 53 50 09 73 74 66 |fr1..-8.|rFSP.stf|
|000021c0| 64 2c 0d 09 09 09 09 09 | 09 62 6c 72 2c 0d 3b 70 |d,......|.blr,.;p|
|000021d0| 70 63 5f 63 6f 64 65 0d | 0d 0d 3a 70 70 63 5f 63 |pc_code.|..:ppc_c|
|000021e0| 6f 64 65 20 46 50 55 4c | 4c 53 0d 09 66 72 31 30 |ode FPUL|LS..fr10|
|000021f0| 09 38 09 72 46 53 50 09 | 6c 66 64 75 2c 0d 09 66 |.8.rFSP.|lfdu,..f|
|00002200| 72 39 09 09 38 09 72 46 | 53 50 09 6c 66 64 75 2c |r9..8.rF|SP.lfdu,|
|00002210| 0d 09 66 72 38 09 09 38 | 09 72 46 53 50 09 6c 66 |..fr8..8|.rFSP.lf|
|00002220| 64 75 2c 0d 09 66 72 37 | 09 09 38 09 72 46 53 50 |du,..fr7|..8.rFSP|
|00002230| 09 6c 66 64 75 2c 0d 09 | 66 72 36 09 09 38 09 72 |.lfdu,..|fr6..8.r|
|00002240| 46 53 50 09 6c 66 64 75 | 2c 0d 09 66 72 35 09 09 |FSP.lfdu|,..fr5..|
|00002250| 38 09 72 46 53 50 09 6c | 66 64 75 2c 0d 09 66 72 |8.rFSP.l|fdu,..fr|
|00002260| 34 09 09 38 09 72 46 53 | 50 09 6c 66 64 75 2c 0d |4..8.rFS|P.lfdu,.|
|00002270| 09 66 72 33 09 09 38 09 | 72 46 53 50 09 6c 66 64 |.fr3..8.|rFSP.lfd|
|00002280| 75 2c 0d 09 66 72 32 09 | 09 38 09 72 46 53 50 09 |u,..fr2.|.8.rFSP.|
|00002290| 6c 66 64 75 2c 0d 09 66 | 72 31 09 09 38 09 72 46 |lfdu,..f|r1..8.rF|
|000022a0| 53 50 09 6c 66 64 75 2c | 0d 09 09 09 09 09 09 62 |SP.lfdu,|.......b|
|000022b0| 6c 72 2c 0d 3b 70 70 63 | 5f 63 6f 64 65 0d 0d 0d |lr,.;ppc|_code...|
|000022c0| 3a 70 70 63 5f 63 6f 64 | 65 20 50 55 4c 4c 50 41 |:ppc_cod|e PULLPA|
|000022d0| 52 4d 53 0d 09 72 32 34 | 09 09 34 09 72 53 50 09 |RMS..r24|..4.rSP.|
|000022e0| 09 6c 77 7a 75 2c 0d 09 | 72 32 35 09 09 34 09 72 |.lwzu,..|r25..4.r|
|000022f0| 53 50 09 09 6c 77 7a 75 | 2c 0d 09 72 32 36 09 09 |SP..lwzu|,..r26..|
|00002300| 34 09 72 53 50 09 09 6c | 77 7a 75 2c 0d 09 72 32 |4.rSP..l|wzu,..r2|
|00002310| 37 09 09 34 09 72 53 50 | 09 09 6c 77 7a 75 2c 0d |7..4.rSP|..lwzu,.|
|00002320| 09 72 32 38 09 09 34 09 | 72 53 50 09 09 6c 77 7a |.r28..4.|rSP..lwz|
|00002330| 75 2c 0d 09 72 32 39 09 | 09 34 09 72 53 50 09 09 |u,..r29.|.4.rSP..|
|00002340| 6c 77 7a 75 2c 0d 09 72 | 33 30 09 09 34 09 72 53 |lwzu,..r|30..4.rS|
|00002350| 50 09 09 6c 77 7a 75 2c | 0d 09 72 33 31 09 09 34 |P..lwzu,|..r31..4|
|00002360| 09 72 53 50 09 09 6c 77 | 7a 75 2c 0d 09 09 09 09 |.rSP..lw|zu,.....|
|00002370| 09 09 62 6c 72 2c 0d 3b | 70 70 63 5f 63 6f 64 65 |..blr,.;|ppc_code|
|00002380| 0d 0d 0d 3a 70 70 63 5f | 63 6f 64 65 20 46 50 55 |...:ppc_|code FPU|
|00002390| 4c 4c 50 41 52 4d 53 0d | 09 66 72 32 34 09 38 09 |LLPARMS.|.fr24.8.|
|000023a0| 72 46 53 50 09 6c 66 64 | 75 2c 0d 09 66 72 32 35 |rFSP.lfd|u,..fr25|
|000023b0| 09 38 09 72 46 53 50 09 | 6c 66 64 75 2c 0d 09 66 |.8.rFSP.|lfdu,..f|
|000023c0| 72 32 36 09 38 09 72 46 | 53 50 09 6c 66 64 75 2c |r26.8.rF|SP.lfdu,|
|000023d0| 0d 09 66 72 32 37 09 38 | 09 72 46 53 50 09 6c 66 |..fr27.8|.rFSP.lf|
|000023e0| 64 75 2c 0d 09 66 72 32 | 38 09 38 09 72 46 53 50 |du,..fr2|8.8.rFSP|
|000023f0| 09 6c 66 64 75 2c 0d 09 | 66 72 32 39 09 38 09 72 |.lfdu,..|fr29.8.r|
|00002400| 46 53 50 09 6c 66 64 75 | 2c 0d 09 66 72 33 30 09 |FSP.lfdu|,..fr30.|
|00002410| 38 09 72 46 53 50 09 6c | 66 64 75 2c 0d 09 66 72 |8.rFSP.l|fdu,..fr|
|00002420| 33 31 09 38 09 72 46 53 | 50 09 6c 66 64 75 2c 0d |31.8.rFS|P.lfdu,.|
|00002430| 09 09 09 09 09 09 62 6c | 72 2c 0d 3b 70 70 63 5f |......bl|r,.;ppc_|
|00002440| 63 6f 64 65 0d 0d 0d 3a | 70 70 63 5f 63 6f 64 65 |code...:|ppc_code|
|00002450| 20 53 41 56 45 53 0d 09 | 72 32 31 09 09 2d 34 34 | SAVES..|r21..-44|
|00002460| 09 72 52 50 09 09 73 74 | 77 2c 0d 09 72 32 32 09 |.rRP..st|w,..r22.|
|00002470| 09 2d 34 30 09 72 52 50 | 09 09 73 74 77 2c 0d 09 |.-40.rRP|..stw,..|
|00002480| 72 32 33 09 09 2d 33 36 | 09 72 52 50 09 09 73 74 |r23..-36|.rRP..st|
|00002490| 77 2c 0d 09 72 32 34 09 | 09 2d 33 32 09 72 52 50 |w,..r24.|.-32.rRP|
|000024a0| 09 09 73 74 77 2c 0d 09 | 72 32 35 09 09 2d 32 38 |..stw,..|r25..-28|
|000024b0| 09 72 52 50 09 09 73 74 | 77 2c 0d 09 72 32 36 09 |.rRP..st|w,..r26.|
|000024c0| 09 2d 32 34 09 72 52 50 | 09 09 73 74 77 2c 0d 09 |.-24.rRP|..stw,..|
|000024d0| 72 32 37 09 09 2d 32 30 | 09 72 52 50 09 09 73 74 |r27..-20|.rRP..st|
|000024e0| 77 2c 0d 09 72 32 38 09 | 09 2d 31 36 09 72 52 50 |w,..r28.|.-16.rRP|
|000024f0| 09 09 73 74 77 2c 0d 09 | 72 32 39 09 09 2d 31 32 |..stw,..|r29..-12|
|00002500| 09 72 52 50 09 09 73 74 | 77 2c 0d 09 72 33 30 09 |.rRP..st|w,..r30.|
|00002510| 09 2d 38 09 72 52 50 09 | 09 73 74 77 2c 0d 09 72 |.-8.rRP.|.stw,..r|
|00002520| 33 31 09 09 2d 34 09 72 | 52 50 09 09 73 74 77 2c |31..-4.r|RP..stw,|
|00002530| 0d 09 09 09 09 09 09 62 | 6c 72 2c 0d 3b 70 70 63 |.......b|lr,.;ppc|
|00002540| 5f 63 6f 64 65 0d 0d 0d | 3a 70 70 63 5f 63 6f 64 |_code...|:ppc_cod|
|00002550| 65 20 52 45 53 54 4f 52 | 45 53 0d 09 72 32 31 09 |e RESTOR|ES..r21.|
|00002560| 09 2d 34 34 09 72 52 50 | 09 09 6c 77 7a 2c 0d 09 |.-44.rRP|..lwz,..|
|00002570| 72 32 32 09 09 2d 34 30 | 09 72 52 50 09 09 6c 77 |r22..-40|.rRP..lw|
|00002580| 7a 2c 0d 09 72 32 33 09 | 09 2d 33 36 09 72 52 50 |z,..r23.|.-36.rRP|
|00002590| 09 09 6c 77 7a 2c 0d 09 | 72 32 34 09 09 2d 33 32 |..lwz,..|r24..-32|
|000025a0| 09 72 52 50 09 09 6c 77 | 7a 2c 0d 09 72 32 35 09 |.rRP..lw|z,..r25.|
|000025b0| 09 2d 32 38 09 72 52 50 | 09 09 6c 77 7a 2c 0d 09 |.-28.rRP|..lwz,..|
|000025c0| 72 32 36 09 09 2d 32 34 | 09 72 52 50 09 09 6c 77 |r26..-24|.rRP..lw|
|000025d0| 7a 2c 0d 09 72 32 37 09 | 09 2d 32 30 09 72 52 50 |z,..r27.|.-20.rRP|
|000025e0| 09 09 6c 77 7a 2c 0d 09 | 72 32 38 09 09 2d 31 36 |..lwz,..|r28..-16|
|000025f0| 09 72 52 50 09 09 6c 77 | 7a 2c 0d 09 72 32 39 09 |.rRP..lw|z,..r29.|
|00002600| 09 2d 31 32 09 72 52 50 | 09 09 6c 77 7a 2c 0d 09 |.-12.rRP|..lwz,..|
|00002610| 72 33 30 09 09 2d 38 09 | 72 52 50 09 09 6c 77 7a |r30..-8.|rRP..lwz|
|00002620| 2c 0d 09 72 33 31 09 09 | 2d 34 09 72 52 50 09 09 |,..r31..|-4.rRP..|
|00002630| 6c 77 7a 2c 0d 09 09 09 | 09 09 09 62 6c 72 2c 0d |lwz,....|...blr,.|
|00002640| 3b 70 70 63 5f 63 6f 64 | 65 0d 0d 0d 3a 70 70 63 |;ppc_cod|e...:ppc|
|00002650| 5f 63 6f 64 65 20 46 53 | 41 56 45 53 0d 09 66 72 |_code FS|AVES..fr|
|00002660| 32 31 09 2d 38 38 09 72 | 52 50 09 09 73 74 66 64 |21.-88.r|RP..stfd|
|00002670| 2c 0d 09 66 72 32 32 09 | 2d 38 30 09 72 52 50 09 |,..fr22.|-80.rRP.|
|00002680| 09 73 74 66 64 2c 0d 09 | 66 72 32 33 09 2d 37 32 |.stfd,..|fr23.-72|
|00002690| 09 72 52 50 09 09 73 74 | 66 64 2c 0d 09 66 72 32 |.rRP..st|fd,..fr2|
|000026a0| 34 09 2d 36 34 09 72 52 | 50 09 09 73 74 66 64 2c |4.-64.rR|P..stfd,|
|000026b0| 0d 09 66 72 32 35 09 2d | 35 36 20 72 52 50 09 09 |..fr25.-|56 rRP..|
|000026c0| 73 74 66 64 2c 0d 09 66 | 72 32 36 09 2d 34 38 20 |stfd,..f|r26.-48 |
|000026d0| 72 52 50 09 09 73 74 66 | 64 2c 0d 09 66 72 32 37 |rRP..stf|d,..fr27|
|000026e0| 09 2d 34 30 20 72 52 50 | 09 09 73 74 66 64 2c 0d |.-40 rRP|..stfd,.|
|000026f0| 09 66 72 32 38 09 2d 33 | 32 20 72 52 50 09 09 73 |.fr28.-3|2 rRP..s|
|00002700| 74 66 64 2c 0d 09 66 72 | 32 39 09 2d 32 34 20 72 |tfd,..fr|29.-24 r|
|00002710| 52 50 09 09 73 74 66 64 | 2c 0d 09 66 72 33 30 09 |RP..stfd|,..fr30.|
|00002720| 2d 31 36 09 72 52 50 09 | 09 73 74 66 64 2c 0d 09 |-16.rRP.|.stfd,..|
|00002730| 66 72 33 31 09 2d 38 09 | 72 52 50 09 09 73 74 66 |fr31.-8.|rRP..stf|
|00002740| 64 2c 0d 09 09 09 09 09 | 09 62 6c 72 2c 0d 3b 70 |d,......|.blr,.;p|
|00002750| 70 63 5f 63 6f 64 65 0d | 0d 0d 3a 70 70 63 5f 63 |pc_code.|..:ppc_c|
|00002760| 6f 64 65 20 46 52 45 53 | 54 4f 52 45 53 0d 09 66 |ode FRES|TORES..f|
|00002770| 72 32 31 09 2d 38 38 09 | 72 52 50 09 09 6c 66 64 |r21.-88.|rRP..lfd|
|00002780| 2c 0d 09 66 72 32 32 09 | 2d 38 30 09 72 52 50 09 |,..fr22.|-80.rRP.|
|00002790| 09 6c 66 64 2c 0d 09 66 | 72 32 33 09 2d 37 32 09 |.lfd,..f|r23.-72.|
|000027a0| 72 52 50 09 09 6c 66 64 | 2c 0d 09 66 72 32 34 09 |rRP..lfd|,..fr24.|
|000027b0| 2d 36 34 09 72 52 50 09 | 09 6c 66 64 2c 0d 09 66 |-64.rRP.|.lfd,..f|
|000027c0| 72 32 35 09 2d 35 36 20 | 72 52 50 09 09 6c 66 64 |r25.-56 |rRP..lfd|
|000027d0| 2c 0d 09 66 72 32 36 09 | 2d 34 38 20 72 52 50 09 |,..fr26.|-48 rRP.|
|000027e0| 09 6c 66 64 2c 0d 09 66 | 72 32 37 09 2d 34 30 20 |.lfd,..f|r27.-40 |
|000027f0| 72 52 50 09 09 6c 66 64 | 2c 0d 09 66 72 32 38 09 |rRP..lfd|,..fr28.|
|00002800| 2d 33 32 20 72 52 50 09 | 09 6c 66 64 2c 0d 09 66 |-32 rRP.|.lfd,..f|
|00002810| 72 32 39 09 2d 32 34 20 | 72 52 50 09 09 6c 66 64 |r29.-24 |rRP..lfd|
|00002820| 2c 0d 09 66 72 33 30 09 | 2d 31 36 09 72 52 50 09 |,..fr30.|-16.rRP.|
|00002830| 09 6c 66 64 2c 0d 09 66 | 72 33 31 09 2d 38 09 72 |.lfd,..f|r31.-8.r|
|00002840| 52 50 09 09 6c 66 64 2c | 0d 09 09 09 09 09 09 62 |RP..lfd,|.......b|
|00002850| 6c 72 2c 0d 3b 70 70 63 | 5f 63 6f 64 65 0d 0d 0d |lr,.;ppc|_code...|
|00002860| 0d 3a 70 70 63 5f 63 6f | 64 65 20 28 45 58 29 09 |.:ppc_co|de (EX).|
|00002870| 09 5c 20 63 61 6c 6c 65 | 64 20 66 72 6f 6d 20 45 |.\ calle|d from E|
|00002880| 58 45 43 55 54 45 2c 20 | 6f 6e 63 65 20 77 65 27 |XECUTE, |once we'|
|00002890| 76 65 20 68 61 6e 64 6c | 65 64 20 61 20 70 6f 73 |ve handl|ed a pos|
|000028a0| 73 69 62 6c 65 0d 09 09 | 09 09 09 5c 20 20 69 6e |sible...|...\ in|
|000028b0| 64 69 72 65 63 74 69 6f | 6e 20 76 69 61 20 61 20 |directio|n via a |
|000028c0| 76 65 63 74 6f 72 2e 0d | 0d 5c 20 69 6e 20 61 20 |vector..|.\ in a |
|000028d0| 63 6f 64 65 20 64 65 66 | 6e 20 77 65 20 61 6c 77 |code def|n we alw|
|000028e0| 61 79 73 20 68 61 76 65 | 20 32 20 73 74 61 63 6b |ays have| 2 stack|
|000028f0| 20 63 65 6c 6c 73 20 61 | 6e 64 20 32 20 66 6c 6f | cells a|nd 2 flo|
|00002900| 61 74 69 6e 67 20 73 74 | 61 63 6b 20 63 65 6c 6c |ating st|ack cell|
|00002910| 73 20 69 6e 20 72 65 67 | 73 20 6f 6e 0d 5c 20 20 |s in reg|s on.\ |
|00002920| 65 6e 74 72 79 2e 20 20 | 53 6f 20 68 65 72 65 20 |entry. |So here |
|00002930| 77 65 20 68 61 76 65 20 | 72 34 20 3d 20 78 74 20 |we have |r4 = xt |
|00002940| 74 6f 20 65 78 65 63 75 | 74 65 2c 20 72 33 20 3d |to execu|te, r3 =|
|00002950| 20 6e 65 78 74 20 63 65 | 6c 6c 20 64 6f 77 6e 2e | next ce|ll down.|
|00002960| 20 20 57 65 20 63 61 6e | 20 73 63 72 69 62 62 6c | We can| scribbl|
|00002970| 65 20 0d 5c 20 20 6f 6e | 20 72 35 2d 31 30 20 75 |e .\ on| r5-10 u|
|00002980| 6e 74 69 6c 20 77 65 20 | 67 65 74 20 74 68 65 20 |ntil we |get the |
|00002990| 70 61 72 6d 73 20 69 6e | 74 6f 20 72 65 67 73 2e |parms in|to regs.|
|000029a0| 0d 0d 5c 20 49 66 20 74 | 68 69 73 20 69 73 20 61 |..\ If t|his is a|
|000029b0| 20 6d 65 74 68 6f 64 2c | 20 74 68 65 20 6f 62 6a | method,| the obj|
|000029c0| 20 61 64 64 72 20 77 69 | 6c 6c 20 62 65 20 72 59 | addr wi|ll be rY|
|000029d0| 20 28 72 31 32 29 2c 20 | 73 6f 20 77 65 20 68 61 | (r12), |so we ha|
|000029e0| 76 65 20 74 6f 20 6c 65 | 61 76 65 0d 5c 20 20 74 |ve to le|ave.\ t|
|000029f0| 68 61 74 20 61 6c 6f 6e | 65 20 66 6f 72 20 74 68 |hat alon|e for th|
|00002a00| 65 20 66 69 72 73 74 20 | 70 61 72 74 2e 0d 0d 09 |e first |part....|
|00002a10| 72 30 09 09 09 09 09 09 | 6d 66 6c 72 2c 09 09 5c |r0......|mflr,..\|
|00002a20| 20 73 61 76 65 20 6c 72 | 20 6f 6e 20 72 65 74 75 | save lr| on retu|
|00002a30| 72 6e 20 73 74 61 63 6b | 0d 09 72 30 09 09 2d 38 |rn stack|..r0..-8|
|00002a40| 09 72 52 50 09 09 09 73 | 74 77 75 2c 0d 0d 09 66 |.rRP...s|twu,...f|
|00002a50| 72 32 09 09 2d 31 36 09 | 72 46 53 50 09 09 73 74 |r2..-16.|rFSP..st|
|00002a60| 66 64 2c 09 09 5c 20 70 | 75 73 68 20 6f 66 20 66 |fd,..\ p|ush of f|
|00002a70| 72 31 20 61 6e 64 20 66 | 72 32 20 2d 20 61 6c 6c |r1 and f|r2 - all|
|00002a80| 20 46 50 20 73 74 6b 20 | 63 65 6c 6c 73 20 6e 6f | FP stk |cells no|
|00002a90| 77 20 69 6e 20 6d 65 6d | 0d 09 66 72 31 09 09 2d |w in mem|..fr1..-|
|00002aa0| 38 09 72 46 53 50 09 09 | 73 74 66 64 2c 0d 09 72 |8.rFSP..|stfd,..r|
|00002ab0| 46 53 50 09 2d 32 34 09 | 09 09 09 61 64 64 69 2c |FSP.-24.|...addi,|
|00002ac0| 09 09 5c 20 6c 65 61 76 | 65 20 72 46 53 50 20 38 |..\ leav|e rFSP 8|
|00002ad0| 20 62 79 74 65 73 20 6c | 6f 77 65 72 20 74 68 61 | bytes l|ower tha|
|00002ae0| 6e 20 75 73 75 61 6c 2c | 20 74 6f 20 73 69 6d 70 |n usual,| to simp|
|00002af0| 6c 69 66 79 0d 09 09 09 | 09 09 09 09 09 09 09 5c |lify....|.......\|
|00002b00| 20 20 77 68 61 74 20 66 | 6f 6c 6c 6f 77 73 0d 0d | what f|ollows..|
|00002b10| 09 72 58 09 09 72 34 09 | 09 09 09 6d 72 2c 09 09 |.rX..r4.|...mr,..|
|00002b20| 09 5c 20 72 58 20 3d 20 | 61 64 64 72 20 6f 66 20 |.\ rX = |addr of |
|00002b30| 66 6c 61 67 20 62 79 74 | 65 73 20 6f 66 20 64 65 |flag byt|es of de|
|00002b40| 66 6e 20 77 65 27 72 65 | 20 65 78 65 63 75 74 69 |fn we're| executi|
|00002b50| 6e 67 0d 09 72 35 09 09 | 2d 32 09 72 58 09 09 09 |ng..r5..|-2.rX...|
|00002b60| 6c 68 7a 2c 09 09 5c 20 | 72 35 20 3d 20 68 61 6e |lhz,..\ |r5 = han|
|00002b70| 64 6c 65 72 20 63 6f 64 | 65 2c 20 77 68 69 63 68 |dler cod|e, which|
|00002b80| 20 77 65 20 6e 6f 77 20 | 63 68 65 63 6b 0d 09 72 | we now |check..r|
|00002b90| 30 09 09 72 35 20 09 24 | 20 46 46 30 30 09 09 61 |0..r5 .$| FF00..a|
|00002ba0| 6e 64 69 2e 2c 09 09 5c | 20 42 45 78 78 20 69 73 |ndi.,..\| BExx is|
|00002bb0| 20 4f 4b 0d 09 72 30 09 | 09 24 20 42 45 30 30 09 | OK..r0.|.$ BE00.|
|00002bc0| 09 09 63 6d 70 6c 69 2c | 0d 0d 6e 65 20 69 66 2c |..cmpli,|..ne if,|
|00002bd0| 0d 09 72 30 09 09 24 20 | 42 44 30 30 09 09 09 63 |..r0..$ |BD00...c|
|00002be0| 6d 70 6c 69 2c 0d 20 65 | 71 20 69 66 2c 0d 09 72 |mpli,. e|q if,..r|
|00002bf0| 36 09 09 72 58 09 09 09 | 09 6c 68 7a 2c 09 09 5c |6..rX...|.lhz,..\|
|00002c00| 20 4f 4b 20 2d 20 74 68 | 65 72 65 27 6c 6c 20 62 | OK - th|ere'll b|
|00002c10| 65 20 62 6f 69 6c 65 72 | 70 6c 61 74 65 20 63 6f |e boiler|plate co|
|00002c20| 64 65 20 61 66 74 65 72 | 0d 20 09 72 36 09 09 72 |de after|. .r6..r|
|00002c30| 36 09 24 20 46 46 09 09 | 61 6e 64 69 2e 2c 09 09 |6.$ FF..|andi.,..|
|00002c40| 5c 20 20 74 68 65 20 69 | 6e 66 6f 20 62 79 74 65 |\ the i|nfo byte|
|00002c50| 73 2e 20 20 72 36 20 3d | 20 23 20 69 6e 66 6f 20 |s. r6 =| # info |
|00002c60| 62 79 74 65 73 0d 20 09 | 72 58 09 09 72 58 09 72 |bytes. .|rX..rX.r|
|00002c70| 36 09 09 09 61 64 64 2c | 09 09 5c 20 61 64 64 20 |6...add,|..\ add |
|00002c80| 74 6f 20 61 64 64 72 20 | 69 6e 20 72 58 2e 20 20 |to addr |in rX. |
|00002c90| 4e 6f 77 20 77 65 20 6e | 65 65 64 20 74 6f 20 61 |Now we n|eed to a|
|00002ca0| 64 64 20 32 20 66 6f 72 | 0d 20 09 09 09 09 09 09 |dd 2 for|. ......|
|00002cb0| 09 09 09 09 5c 20 74 68 | 65 20 65 78 74 72 61 20 |....\ th|e extra |
|00002cc0| 69 6e 66 6f 20 6d 61 72 | 6b 20 61 6e 64 20 6c 65 |info mar|k and le|
|00002cd0| 6e 2c 20 74 68 65 6e 20 | 6f 66 66 2d 61 6c 69 67 |n, then |off-alig|
|00002ce0| 6e 20 28 62 79 0d 20 09 | 09 09 09 09 09 09 09 09 |n (by. .|........|
|00002cf0| 09 5c 20 61 64 64 69 6e | 67 20 35 2c 20 34 2d 62 |.\ addin|g 5, 4-b|
|00002d00| 79 74 65 20 61 6c 69 67 | 6e 69 6e 67 2c 20 74 68 |yte alig|ning, th|
|00002d10| 65 6e 20 73 75 62 74 72 | 61 63 74 69 6e 67 20 32 |en subtr|acting 2|
|00002d20| 29 0d 20 09 72 58 09 09 | 72 58 09 37 09 09 09 61 |). .rX..|rX.7...a|
|00002d30| 64 64 69 2c 09 09 5c 20 | 73 6f 20 77 65 20 63 6f |ddi,..\ |so we co|
|00002d40| 6d 62 69 6e 65 20 74 68 | 65 20 35 20 61 6e 64 20 |mbine th|e 5 and |
|00002d50| 32 20 61 6e 64 20 61 64 | 64 20 37 0d 09 72 58 09 |2 and ad|d 7..rX.|
|00002d60| 09 72 58 20 30 20 30 20 | 32 39 09 09 72 6c 77 69 |.rX 0 0 |29..rlwi|
|00002d70| 6e 6d 2c 09 09 5c 20 62 | 61 63 6b 20 74 6f 20 34 |nm,..\ b|ack to 4|
|00002d80| 2d 62 79 74 65 20 62 6f | 75 6e 64 61 72 79 0d 20 |-byte bo|undary. |
|00002d90| 09 72 58 09 09 72 58 09 | 2d 32 09 09 09 61 64 64 |.rX..rX.|-2...add|
|00002da0| 69 2c 09 09 5c 20 6e 6f | 77 20 72 58 20 2d 3e 20 |i,..\ no|w rX -> |
|00002db0| 66 6c 61 67 20 62 79 74 | 65 73 20 66 6f 72 20 62 |flag byt|es for b|
|00002dc0| 6f 69 6c 65 72 70 6c 61 | 74 65 20 63 6f 64 65 0d |oilerpla|te code.|
|00002dd0| 20 65 6c 73 65 2c 0d 09 | 72 30 09 09 27 20 65 78 | else,..|r0..' ex|
|00002de0| 65 63 45 72 72 20 32 2b | 09 64 69 63 61 64 64 72 |ecErr 2+|.dicaddr|
|00002df0| 2c 0d 09 72 30 09 09 09 | 09 09 09 6d 74 63 74 72 |,..r0...|...mtctr|
|00002e00| 2c 0d 09 09 09 09 09 09 | 09 62 63 74 72 2c 0d 20 |,.......|.bctr,. |
|00002e10| 74 68 65 6e 2c 0d 74 68 | 65 6e 2c 0d 0d 5c 20 6e |then,.th|en,..\ n|
|00002e20| 6f 77 20 77 65 20 67 65 | 74 20 74 68 65 20 66 6c |ow we ge|t the fl|
|00002e30| 61 67 20 62 79 74 65 73 | 20 74 6f 20 72 36 2c 20 |ag bytes| to r6, |
|00002e40| 61 6e 64 20 74 68 65 20 | 46 50 20 66 6c 61 67 20 |and the |FP flag |
|00002e50| 62 79 74 65 73 20 74 6f | 20 72 37 2e 0d 0d 09 72 |bytes to| r7....r|
|00002e60| 36 09 09 30 09 72 58 09 | 09 09 6c 68 7a 2c 09 09 |6..0.rX.|..lhz,..|
|00002e70| 5c 20 72 36 20 3d 20 66 | 6c 61 67 20 62 79 74 65 |\ r6 = f|lag byte|
|00002e80| 73 0d 0d 09 72 33 09 09 | 2d 34 09 72 53 50 09 09 |s...r3..|-4.rSP..|
|00002e90| 09 73 74 77 2c 09 09 5c | 20 70 75 73 68 20 6f 66 |.stw,..\| push of|
|00002ea0| 66 20 72 33 20 2d 20 61 | 6c 6c 20 73 74 6b 20 63 |f r3 - a|ll stk c|
|00002eb0| 65 6c 6c 73 20 61 72 65 | 20 6e 6f 77 20 69 6e 20 |ells are| now in |
|00002ec0| 6d 65 6d 0d 09 72 53 50 | 09 09 2d 38 09 09 09 09 |mem..rSP|..-8....|
|00002ed0| 61 64 64 69 2c 09 09 5c | 20 6c 65 61 76 65 20 72 |addi,..\| leave r|
|00002ee0| 53 50 20 34 20 62 79 74 | 65 73 20 6c 6f 77 65 72 |SP 4 byt|es lower|
|00002ef0| 20 74 68 61 6e 20 75 73 | 75 61 6c 2c 20 74 6f 20 | than us|ual, to |
|00002f00| 73 69 6d 70 6c 69 66 79 | 0d 09 09 09 09 09 09 09 |simplify|........|
|00002f10| 09 09 09 5c 20 20 77 68 | 61 74 20 66 6f 6c 6c 6f |...\ wh|at follo|
|00002f20| 77 73 0d 09 09 09 09 09 | 09 09 09 09 09 0d 09 72 |ws......|.......r|
|00002f30| 30 09 09 72 36 09 24 20 | 31 30 30 30 09 09 61 6e |0..r6.$ |1000..an|
|00002f40| 64 69 2e 2c 09 09 5c 20 | 6c 6f 6f 6b 20 61 74 20 |di.,..\ |look at |
|00002f50| 22 66 70 22 20 62 69 74 | 20 69 6e 20 66 6c 61 67 |"fp" bit| in flag|
|00002f60| 73 0d 20 6e 65 20 69 66 | 2c 0d 09 20 20 72 37 09 |s. ne if|,.. r7.|
|00002f70| 34 09 72 58 09 09 09 6c | 68 7a 2c 09 09 5c 20 69 |4.rX...l|hz,..\ i|
|00002f80| 66 20 73 65 74 2c 20 67 | 65 74 20 46 50 20 66 6c |f set, g|et FP fl|
|00002f90| 61 67 20 62 79 74 65 73 | 20 74 6f 20 72 37 0d 20 |ag bytes| to r7. |
|00002fa0| 65 6c 73 65 2c 0d 20 09 | 20 20 72 37 09 24 20 30 |else,. .| r7.$ 0|
|00002fb0| 32 30 30 09 09 09 6c 69 | 2c 09 09 09 5c 20 6f 74 |200...li|,...\ ot|
|00002fc0| 68 65 72 77 69 73 65 20 | 70 75 74 20 64 65 66 61 |herwise |put defa|
|00002fd0| 75 6c 74 20 66 6c 61 67 | 20 62 79 74 65 73 20 74 |ult flag| bytes t|
|00002fe0| 68 65 72 65 0d 20 74 68 | 65 6e 2c 0d 0d 09 72 30 |here. th|en,...r0|
|00002ff0| 09 09 72 36 09 24 20 38 | 30 30 30 09 09 61 6e 64 |..r6.$ 8|000..and|
|00003000| 69 2e 2c 09 09 5c 20 6c | 6f 6f 6b 20 61 74 20 22 |i.,..\ l|ook at "|
|00003010| 6c 65 61 66 22 20 62 69 | 74 20 69 6e 20 66 6c 61 |leaf" bi|t in fla|
|00003020| 67 73 0d 09 0d 6e 65 20 | 69 66 2c 0d 5c 20 69 74 |gs...ne |if,.\ it|
|00003030| 27 73 20 61 20 6c 65 61 | 66 20 72 6f 75 74 69 6e |'s a lea|f routin|
|00003040| 65 2e 20 20 57 65 20 64 | 6f 20 74 68 65 20 77 6f |e. We d|o the wo|
|00003050| 72 6b 20 6f 66 20 74 68 | 65 20 70 72 6f 6c 6f 67 |rk of th|e prolog|
|00003060| 20 61 6e 64 20 65 70 69 | 6c 6f 67 20 68 65 72 65 | and epi|log here|
|00003070| 20 72 61 74 68 65 72 20 | 74 68 61 6e 20 69 6e 0d | rather |than in.|
|00003080| 5c 20 20 74 68 65 20 63 | 61 6c 6c 65 64 20 72 6f |\ the c|alled ro|
|00003090| 75 74 69 6e 65 2e 20 20 | 72 33 20 69 73 20 75 6e |utine. |r3 is un|
|000030a0| 75 73 65 64 20 68 65 72 | 65 20 73 6f 20 77 65 20 |used her|e so we |
|000030b0| 63 61 6e 20 75 73 65 20 | 69 74 2e 0d 0d 5c 20 46 |can use |it...\ F|
|000030c0| 69 72 73 74 20 77 65 20 | 73 61 76 65 20 74 68 65 |irst we |save the|
|000030d0| 20 46 50 52 73 2c 20 73 | 69 6e 63 65 20 77 65 20 | FPRs, s|ince we |
|000030e0| 6b 6e 6f 77 20 52 50 20 | 69 73 20 38 2d 62 79 74 |know RP |is 8-byt|
|000030f0| 65 20 61 6c 69 67 6e 65 | 64 3a 0d 0d 09 72 33 09 |e aligne|d:...r3.|
|00003100| 09 72 37 20 32 20 32 36 | 20 32 39 09 09 72 6c 77 |.r7 2 26| 29..rlw|
|00003110| 69 6e 6d 2c 09 09 5c 20 | 72 33 20 3d 20 23 20 46 |inm,..\ |r3 = # F|
|00003120| 50 20 70 61 72 6d 2b 6c | 6f 63 61 6c 73 2c 20 74 |P parm+l|ocals, t|
|00003130| 69 6d 65 73 20 34 0d 09 | 72 30 09 09 27 20 66 73 |imes 4..|r0..' fs|
|00003140| 61 76 65 73 20 34 36 20 | 2b 09 64 69 63 61 64 64 |aves 46 |+.dicadd|
|00003150| 72 2c 09 5c 20 61 64 64 | 72 20 6f 66 20 65 6e 64 |r,.\ add|r of end|
|00003160| 20 6f 66 20 22 66 73 61 | 76 65 73 22 20 63 6f 64 | of "fsa|ves" cod|
|00003170| 65 20 74 6f 20 72 30 0d | 09 72 30 09 09 72 33 20 |e to r0.|.r0..r3 |
|00003180| 72 30 09 09 09 73 75 62 | 66 2c 09 09 5c 20 73 75 |r0...sub|f,..\ su|
|00003190| 62 74 72 61 63 74 20 6f | 66 66 73 65 74 0d 09 72 |btract o|ffset..r|
|000031a0| 30 09 09 09 09 09 09 6d | 74 63 74 72 2c 0d 09 09 |0......m|tctr,...|
|000031b0| 09 09 09 09 09 62 63 74 | 72 6c 2c 09 09 5c 20 73 |.....bct|rl,..\ s|
|000031c0| 61 76 65 20 74 68 65 20 | 72 65 71 75 69 72 65 64 |ave the |required|
|000031d0| 20 46 50 20 72 65 67 73 | 0d 09 72 30 09 09 72 33 | FP regs|..r0..r3|
|000031e0| 09 72 33 09 09 09 61 64 | 64 2c 09 09 5c 20 64 6f |.r3...ad|d,..\ do|
|000031f0| 75 62 6c 65 20 6f 66 66 | 73 65 74 20 66 6f 72 20 |uble off|set for |
|00003200| 72 52 50 20 64 65 63 72 | 65 6d 65 6e 74 0d 09 72 |rRP decr|ement..r|
|00003210| 52 50 09 09 72 30 09 72 | 52 50 09 09 09 73 75 62 |RP..r0.r|RP...sub|
|00003220| 66 2c 09 09 5c 20 64 65 | 63 72 65 6d 65 6e 74 20 |f,..\ de|crement |
|00003230| 72 52 50 20 6f 76 65 72 | 20 73 61 76 65 64 20 46 |rRP over| saved F|
|00003240| 50 52 73 0d 0d 5c 20 4e | 6f 77 20 77 65 20 73 61 |PRs..\ N|ow we sa|
|00003250| 76 65 20 74 68 65 20 47 | 50 52 73 3a 0d 0d 09 72 |ve the G|PRs:...r|
|00003260| 33 09 09 72 36 20 32 20 | 32 36 20 32 39 09 09 72 |3..r6 2 |26 29..r|
|00003270| 6c 77 69 6e 6d 2c 09 09 | 5c 20 72 33 20 3d 20 23 |lwinm,..|\ r3 = #|
|00003280| 20 70 61 72 6d 73 2b 6c | 6f 63 61 6c 73 2c 20 74 | parms+l|ocals, t|
|00003290| 69 6d 65 73 20 34 0d 09 | 72 30 09 09 27 20 73 61 |imes 4..|r0..' sa|
|000032a0| 76 65 73 20 34 36 20 2b | 09 64 69 63 61 64 64 72 |ves 46 +|.dicaddr|
|000032b0| 2c 09 5c 20 61 64 64 72 | 20 6f 66 20 65 6e 64 20 |,.\ addr| of end |
|000032c0| 6f 66 20 22 73 61 76 65 | 73 22 20 63 6f 64 65 20 |of "save|s" code |
|000032d0| 74 6f 20 72 30 0d 09 72 | 30 09 09 72 33 20 72 30 |to r0..r|0..r3 r0|
|000032e0| 09 09 09 73 75 62 66 2c | 09 09 5c 20 73 75 62 74 |...subf,|..\ subt|
|000032f0| 72 61 63 74 20 6f 66 66 | 73 65 74 0d 09 72 30 09 |ract off|set..r0.|
|00003300| 09 09 09 09 09 6d 74 63 | 74 72 2c 0d 09 09 09 09 |.....mtc|tr,.....|
|00003310| 09 09 09 62 63 74 72 6c | 2c 09 09 5c 20 73 61 76 |...bctrl|,..\ sav|
|00003320| 65 20 74 68 65 20 72 65 | 71 75 69 72 65 64 20 72 |e the re|quired r|
|00003330| 65 67 73 0d 09 72 52 50 | 09 09 72 33 09 72 52 50 |egs..rRP|..r3.rRP|
|00003340| 09 09 09 73 75 62 66 2c | 09 09 5c 20 64 65 63 72 |...subf,|..\ decr|
|00003350| 65 6d 65 6e 74 20 72 52 | 50 20 6f 76 65 72 20 73 |ement rR|P over s|
|00003360| 61 76 65 64 20 72 65 67 | 73 0d 0d 0d 09 72 30 09 |aved reg|s....r0.|
|00003370| 09 72 35 09 24 20 46 46 | 09 09 61 6e 64 69 2e 2c |.r5.$ FF|..andi.,|
|00003380| 0d 09 72 30 09 09 24 20 | 34 30 09 09 09 63 6d 70 |..r0..$ |40...cmp|
|00003390| 6c 69 2c 09 09 5c 20 6d | 65 74 68 6f 64 3f 0d 20 |li,..\ m|ethod?. |
|000033a0| 65 71 20 69 66 2c 0d 09 | 72 32 30 09 09 2d 34 09 |eq if,..|r20..-4.|
|000033b0| 72 52 50 09 09 09 73 74 | 77 75 2c 09 09 5c 20 79 |rRP...st|wu,..\ y|
|000033c0| 65 73 20 2d 20 73 61 76 | 65 20 72 32 30 0d 09 72 |es - sav|e r20..r|
|000033d0| 32 30 09 09 72 59 09 09 | 09 09 6d 72 2c 09 09 09 |20..rY..|..mr,...|
|000033e0| 5c 20 61 6e 64 20 6d 6f | 76 65 20 72 59 20 74 6f |\ and mo|ve rY to|
|000033f0| 20 74 68 65 72 65 0d 20 | 74 68 65 6e 2c 0d 0d 5c | there. |then,..\|
|00003400| 20 6e 6f 77 20 77 65 20 | 6c 6f 6f 6b 20 61 66 74 | now we |look aft|
|00003410| 65 72 20 74 68 65 20 70 | 61 72 6d 73 20 74 68 65 |er the p|arms the|
|00003420| 6d 73 65 6c 76 65 73 20 | 2d 20 77 65 20 73 65 74 |mselves |- we set|
|00003430| 20 75 70 20 66 6f 72 20 | 74 68 65 6d 20 74 6f 20 | up for |them to |
|00003440| 67 6f 20 73 74 72 61 69 | 67 68 74 20 74 6f 0d 5c |go strai|ght to.\|
|00003450| 20 20 74 68 65 69 72 20 | 75 6c 74 69 6d 61 74 65 | their |ultimate|
|00003460| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 20 72 65 67 | destina|tion reg|
|00003470| 73 2e 20 20 46 69 72 73 | 74 20 61 6e 79 20 46 50 |s. Firs|t any FP|
|00003480| 20 70 61 72 6d 73 3a 0d | 0d 09 72 33 09 09 72 37 | parms:.|..r3..r7|
|00003490| 20 33 30 20 32 36 20 32 | 39 09 09 72 6c 77 69 6e | 30 26 2|9..rlwin|
|000034a0| 6d 2c 09 09 5c 20 72 33 | 20 3d 20 23 20 46 50 20 |m,..\ r3| = # FP |
|000034b0| 70 61 72 6d 73 2c 20 74 | 69 6d 65 73 20 34 0d 09 |parms, t|imes 4..|
|000034c0| 72 30 09 27 20 66 70 75 | 6c 6c 50 61 72 6d 73 20 |r0.' fpu|llParms |
|000034d0| 33 34 20 2b 09 64 69 63 | 61 64 64 72 2c 09 5c 20 |34 +.dic|addr,.\ |
|000034e0| 61 64 64 72 20 6f 66 20 | 65 6e 64 20 6f 66 20 22 |addr of |end of "|
|000034f0| 70 75 6c 6c 50 61 72 6d | 73 22 20 63 6f 64 65 20 |pullParm|s" code |
|00003500| 74 6f 20 72 30 0d 09 72 | 30 09 09 72 33 20 72 30 |to r0..r|0..r3 r0|
|00003510| 09 09 09 73 75 62 66 2c | 09 09 5c 20 73 75 62 74 |...subf,|..\ subt|
|00003520| 72 61 63 74 20 6f 66 66 | 73 65 74 0d 09 72 30 09 |ract off|set..r0.|
|00003530| 09 09 09 09 09 6d 74 63 | 74 72 2c 0d 09 09 09 09 |.....mtc|tr,.....|
|00003540| 09 09 09 62 63 74 72 6c | 2c 09 09 5c 20 70 75 6c |...bctrl|,..\ pul|
|00003550| 6c 20 74 68 65 20 46 50 | 20 70 61 72 6d 73 20 77 |l the FP| parms w|
|00003560| 65 20 6e 65 65 64 20 69 | 6e 74 6f 20 72 65 67 73 |e need i|nto regs|
|00003570| 20 75 70 20 74 6f 20 66 | 72 33 31 0d 0d 5c 20 6e | up to f|r31..\ n|
|00003580| 6f 77 20 77 65 20 6c 6f | 6f 6b 20 61 66 74 65 72 |ow we lo|ok after|
|00003590| 20 61 6e 79 20 46 50 20 | 73 74 61 63 6b 20 63 65 | any FP |stack ce|
|000035a0| 6c 6c 73 20 74 68 61 74 | 20 68 61 76 65 20 74 6f |lls that| have to|
|000035b0| 20 67 6f 20 74 6f 20 72 | 65 67 73 20 2d 20 74 68 | go to r|egs - th|
|000035c0| 69 73 20 77 69 6c 6c 20 | 6f 6e 6c 79 0d 5c 20 20 |is will |only.\ |
|000035d0| 68 61 70 70 65 6e 20 69 | 66 20 6f 75 72 20 64 65 |happen i|f our de|
|000035e0| 66 61 75 6c 74 20 63 61 | 6c 6c 5f 63 6e 74 20 28 |fault ca|ll_cnt (|
|000035f0| 32 29 20 69 73 20 67 72 | 65 61 74 65 72 20 74 68 |2) is gr|eater th|
|00003600| 61 6e 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |an the n|umber of|
|00003610| 20 6e 61 6d 65 64 20 70 | 61 72 6d 73 2e 0d 5c 20 | named p|arms..\ |
|00003620| 4e 6f 74 65 20 74 68 65 | 20 6d 6f 73 74 20 70 75 |Note the| most pu|
|00003630| 6c 6c 73 20 77 65 27 6c | 6c 20 64 6f 20 69 73 20 |lls we'l|l do is |
|00003640| 74 6f 20 66 72 31 20 61 | 6e 64 20 66 72 32 2e 0d |to fr1 a|nd fr2..|
|00003650| 0d 09 72 30 09 09 38 09 | 09 09 09 6c 69 2c 0d 09 |..r0..8.|...li,..|
|00003660| 72 33 09 09 72 33 09 72 | 30 09 09 09 73 75 62 66 |r3..r3.r|0...subf|
|00003670| 2e 2c 09 09 5c 20 72 33 | 20 3d 20 38 20 2d 20 28 |.,..\ r3| = 8 - (|
|00003680| 20 23 20 46 50 20 70 61 | 72 6d 73 20 2a 20 34 20 | # FP pa|rms * 4 |
|00003690| 29 0d 20 67 74 20 69 66 | 2c 0d 09 72 30 09 09 27 |). gt if|,..r0..'|
|000036a0| 20 66 70 75 6c 6c 73 20 | 34 32 20 2b 09 64 69 63 | fpulls |42 +.dic|
|000036b0| 61 64 64 72 2c 09 5c 20 | 61 64 64 72 20 6f 66 20 |addr,.\ |addr of |
|000036c0| 65 6e 64 20 6f 66 20 22 | 70 75 6c 6c 73 22 20 63 |end of "|pulls" c|
|000036d0| 6f 64 65 20 74 6f 20 72 | 30 0d 09 72 30 09 09 72 |ode to r|0..r0..r|
|000036e0| 33 20 72 30 09 09 09 73 | 75 62 66 2c 09 09 5c 20 |3 r0...s|ubf,..\ |
|000036f0| 73 75 62 74 72 61 63 74 | 20 6f 66 66 73 65 74 0d |subtract| offset.|
|00003700| 09 72 30 09 09 09 09 09 | 09 6d 74 63 74 72 2c 0d |.r0.....|.mtctr,.|
|00003710| 09 09 09 09 09 09 09 62 | 63 74 72 6c 2c 09 09 5c |.......b|ctrl,..\|
|00003720| 20 70 75 6c 6c 20 74 68 | 65 20 66 6c 6f 61 74 69 | pull th|e floati|
|00003730| 6e 67 20 73 74 61 63 6b | 20 63 65 6c 6c 73 20 77 |ng stack| cells w|
|00003740| 65 20 6e 65 65 64 20 69 | 6e 74 6f 20 72 65 67 73 |e need i|nto regs|
|00003750| 0d 20 74 68 65 6e 2c 0d | 0d 09 72 33 09 09 72 36 |. then,.|..r3..r6|
|00003760| 20 33 30 20 32 36 20 32 | 39 09 09 72 6c 77 69 6e | 30 26 2|9..rlwin|
|00003770| 6d 2c 09 09 5c 20 72 33 | 20 3d 20 23 20 70 61 72 |m,..\ r3| = # par|
|00003780| 6d 20 62 79 74 65 73 0d | 09 72 30 09 27 20 70 75 |m bytes.|.r0.' pu|
|00003790| 6c 6c 50 61 72 6d 73 20 | 33 34 20 2b 09 64 69 63 |llParms |34 +.dic|
|000037a0| 61 64 64 72 2c 09 5c 20 | 61 64 64 72 20 6f 66 20 |addr,.\ |addr of |
|000037b0| 65 6e 64 20 6f 66 20 22 | 70 75 6c 6c 50 61 72 6d |end of "|pullParm|
|000037c0| 73 22 20 63 6f 64 65 20 | 74 6f 20 72 30 0d 09 72 |s" code |to r0..r|
|000037d0| 30 09 09 72 33 20 72 30 | 09 09 09 73 75 62 66 2c |0..r3 r0|...subf,|
|000037e0| 09 09 5c 20 73 75 62 74 | 72 61 63 74 20 6f 66 66 |..\ subt|ract off|
|000037f0| 73 65 74 0d 09 72 30 09 | 09 09 09 09 09 6d 74 63 |set..r0.|.....mtc|
|00003800| 74 72 2c 0d 09 09 09 09 | 09 09 09 62 63 74 72 6c |tr,.....|...bctrl|
|00003810| 2c 09 09 5c 20 70 75 6c | 6c 20 74 68 65 20 70 61 |,..\ pul|l the pa|
|00003820| 72 6d 73 20 77 65 20 6e | 65 65 64 20 69 6e 74 6f |rms we n|eed into|
|00003830| 20 72 65 67 73 20 75 70 | 20 74 6f 20 72 33 31 0d | regs up| to r31.|
|00003840| 09 0d 5c 20 6e 6f 77 20 | 77 65 20 6c 6f 6f 6b 20 |..\ now |we look |
|00003850| 61 66 74 65 72 20 61 6e | 79 20 73 74 61 63 6b 20 |after an|y stack |
|00003860| 63 65 6c 6c 73 20 74 68 | 61 74 20 68 61 76 65 20 |cells th|at have |
|00003870| 74 6f 20 67 6f 20 74 6f | 20 72 65 67 73 20 2d 20 |to go to| regs - |
|00003880| 74 68 69 73 20 77 69 6c | 6c 20 6f 6e 6c 79 0d 5c |this wil|l only.\|
|00003890| 20 20 68 61 70 70 65 6e | 20 69 66 20 6f 75 72 20 | happen| if our |
|000038a0| 64 65 66 61 75 6c 74 20 | 63 61 6c 6c 5f 63 6e 74 |default |call_cnt|
|000038b0| 20 28 32 29 20 69 73 20 | 67 72 65 61 74 65 72 20 | (2) is |greater |
|000038c0| 74 68 61 6e 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |than the| number |
|000038d0| 6f 66 20 6e 61 6d 65 64 | 20 70 61 72 6d 73 2e 0d |of named| parms..|
|000038e0| 5c 20 4e 6f 74 65 20 74 | 68 65 20 6d 6f 73 74 20 |\ Note t|he most |
|000038f0| 70 75 6c 6c 73 20 77 65 | 27 6c 6c 20 64 6f 20 69 |pulls we|'ll do i|
|00003900| 73 20 74 6f 20 72 33 20 | 61 6e 64 20 72 34 2c 20 |s to r3 |and r4, |
|00003910| 73 6f 20 72 35 2d 37 20 | 77 69 6c 6c 20 62 65 20 |so r5-7 |will be |
|00003920| 75 6e 74 6f 75 63 68 65 | 64 2e 0d 0d 09 72 30 09 |untouche|d....r0.|
|00003930| 09 38 09 09 09 09 6c 69 | 2c 0d 09 72 33 09 09 72 |.8....li|,..r3..r|
|00003940| 33 09 72 30 09 09 09 73 | 75 62 66 2e 2c 09 09 5c |3.r0...s|ubf.,..\|
|00003950| 20 72 33 20 3d 20 38 20 | 2d 20 23 20 70 61 72 6d | r3 = 8 |- # parm|
|00003960| 20 62 79 74 65 73 0d 20 | 67 74 20 69 66 2c 0d 09 | bytes. |gt if,..|
|00003970| 72 30 09 09 27 20 70 75 | 6c 6c 73 20 33 34 20 2b |r0..' pu|lls 34 +|
|00003980| 09 64 69 63 61 64 64 72 | 2c 09 5c 20 61 64 64 72 |.dicaddr|,.\ addr|
|00003990| 20 6f 66 20 65 6e 64 20 | 6f 66 20 22 70 75 6c 6c | of end |of "pull|
|000039a0| 73 22 20 63 6f 64 65 20 | 74 6f 20 72 30 0d 09 72 |s" code |to r0..r|
|000039b0| 30 09 09 72 33 20 72 30 | 09 09 09 73 75 62 66 2c |0..r3 r0|...subf,|
|000039c0| 09 09 5c 20 73 75 62 74 | 72 61 63 74 20 6f 66 66 |..\ subt|ract off|
|000039d0| 73 65 74 0d 09 72 30 09 | 09 09 09 09 09 6d 74 63 |set..r0.|.....mtc|
|000039e0| 74 72 2c 0d 09 09 09 09 | 09 09 09 62 63 74 72 6c |tr,.....|...bctrl|
|000039f0| 2c 09 09 5c 20 70 75 6c | 6c 20 74 68 65 20 73 74 |,..\ pul|l the st|
|00003a00| 61 63 6b 20 63 65 6c 6c | 73 20 77 65 20 6e 65 65 |ack cell|s we nee|
|00003a10| 64 20 69 6e 74 6f 20 72 | 65 67 73 0d 20 74 68 65 |d into r|egs. the|
|00003a20| 6e 2c 0d 0d 5c 20 62 65 | 66 6f 72 65 20 77 65 20 |n,..\ be|fore we |
|00003a30| 63 61 6c 6c 20 74 68 65 | 20 72 6f 75 74 69 6e 65 |call the| routine|
|00003a40| 20 77 65 20 73 61 76 65 | 20 74 68 65 20 66 6c 61 | we save| the fla|
|00003a50| 67 20 62 79 74 65 73 2c | 20 74 68 65 20 68 61 6e |g bytes,| the han|
|00003a60| 64 6c 65 72 20 63 6f 64 | 65 20 61 6e 64 20 72 58 |dler cod|e and rX|
|00003a70| 2c 0d 5c 20 20 73 69 6e | 63 65 20 77 65 20 6e 65 |,.\ sin|ce we ne|
|00003a80| 65 64 20 74 68 65 6d 20 | 6c 61 74 65 72 2e 20 20 |ed them |later. |
|00003a90| 49 6e 20 74 68 69 73 20 | 6c 65 61 66 20 68 61 6e |In this |leaf han|
|00003aa0| 64 6c 69 6e 67 20 63 6f | 64 65 20 77 65 20 68 61 |dling co|de we ha|
|00003ab0| 76 65 20 74 6f 20 64 6f | 20 74 68 69 73 0d 5c 20 |ve to do| this.\ |
|00003ac0| 20 6c 61 73 74 20 73 69 | 6e 63 65 20 77 65 27 76 | last si|nce we'v|
|00003ad0| 65 20 73 61 76 65 64 20 | 72 65 67 73 20 66 6f 72 |e saved |regs for|
|00003ae0| 20 74 68 65 20 63 61 6c | 6c 65 65 2c 20 61 6e 64 | the cal|lee, and|
|00003af0| 20 77 65 27 6c 6c 20 6e | 65 65 64 20 74 6f 20 72 | we'll n|eed to r|
|00003b00| 65 73 74 6f 72 65 0d 5c | 20 20 74 68 65 73 65 20 |estore.\| these |
|00003b10| 71 75 61 6e 74 69 74 69 | 65 73 20 66 69 72 73 74 |quantiti|es first|
|00003b20| 2e 0d 0d 09 72 35 09 09 | 2d 34 09 72 52 50 09 09 |....r5..|-4.rRP..|
|00003b30| 09 73 74 77 75 2c 0d 09 | 72 36 09 09 2d 34 09 72 |.stwu,..|r6..-4.r|
|00003b40| 52 50 09 09 09 73 74 77 | 75 2c 0d 09 72 58 09 09 |RP...stw|u,..rX..|
|00003b50| 2d 34 09 72 52 50 09 09 | 09 73 74 77 75 2c 0d 0d |-4.rRP..|.stwu,..|
|00003b60| 65 6c 73 65 2c 0d 5c 20 | 20 6e 6f 74 20 61 20 6c |else,.\ | not a l|
|00003b70| 65 61 66 20 72 6f 75 74 | 69 6e 65 2e 0d 0d 5c 20 |eaf rout|ine...\ |
|00003b80| 66 69 72 73 74 20 77 65 | 20 73 61 76 65 20 74 68 |first we| save th|
|00003b90| 65 20 73 61 6d 65 20 71 | 75 61 6e 74 69 74 69 65 |e same q|uantitie|
|00003ba0| 73 20 61 73 20 61 62 6f | 76 65 20 2d 20 62 75 74 |s as abo|ve - but|
|00003bb0| 20 68 65 72 65 20 77 65 | 20 68 61 76 65 20 74 6f | here we| have to|
|00003bc0| 20 64 6f 20 69 74 20 66 | 69 72 73 74 2c 0d 5c 20 | do it f|irst,.\ |
|00003bd0| 20 73 69 6e 63 65 20 77 | 65 20 6d 69 67 68 74 20 | since w|e might |
|00003be0| 62 65 20 63 6c 6f 62 62 | 65 72 69 6e 67 20 72 35 |be clobb|ering r5|
|00003bf0| 2f 72 36 20 69 66 20 74 | 68 65 20 63 61 6c 6c 65 |/r6 if t|he calle|
|00003c00| 65 20 6e 65 65 64 73 20 | 74 68 65 6d 2e 0d 0d 09 |e needs |them....|
|00003c10| 72 35 09 09 2d 34 09 72 | 52 50 09 09 09 73 74 77 |r5..-4.r|RP...stw|
|00003c20| 75 2c 0d 09 72 36 09 09 | 2d 34 09 72 52 50 09 09 |u,..r6..|-4.rRP..|
|00003c30| 09 73 74 77 75 2c 0d 09 | 72 58 09 09 2d 34 09 72 |.stwu,..|rX..-4.r|
|00003c40| 52 50 09 09 09 73 74 77 | 75 2c 0d 0d 09 72 33 09 |RP...stw|u,...r3.|
|00003c50| 09 72 37 20 33 30 20 32 | 36 20 32 39 09 09 72 6c |.r7 30 2|6 29..rl|
|00003c60| 77 69 6e 6d 2c 09 09 5c | 20 72 33 20 3d 20 23 20 |winm,..\| r3 = # |
|00003c70| 66 70 20 70 61 72 6d 73 | 2c 20 74 69 6d 65 73 20 |fp parms|, times |
|00003c80| 34 0d 09 72 30 09 09 38 | 09 09 09 09 6c 69 2c 0d |4..r0..8|....li,.|
|00003c90| 09 72 33 09 09 72 30 09 | 09 09 09 63 6d 70 2c 0d |.r3..r0.|...cmp,.|
|00003ca0| 20 6c 74 20 69 66 2c 0d | 09 20 20 72 33 09 72 30 | lt if,.|. r3.r0|
|00003cb0| 09 09 09 09 6d 72 2c 09 | 09 09 5c 20 69 66 20 3c |....mr,.|..\ if <|
|00003cc0| 20 38 2c 20 6d 61 6b 65 | 20 69 74 20 38 20 73 69 | 8, make| it 8 si|
|00003cd0| 6e 63 65 20 74 68 61 74 | 27 73 20 6f 75 72 20 6d |nce that|'s our m|
|00003ce0| 69 6e 69 6d 75 6d 0d 20 | 74 68 65 6e 2c 0d 09 0d |inimum. |then,...|
|00003cf0| 09 72 30 09 09 27 20 66 | 70 75 6c 6c 73 20 34 32 |.r0..' f|pulls 42|
|00003d00| 20 2b 09 64 69 63 61 64 | 64 72 2c 09 5c 20 61 64 | +.dicad|dr,.\ ad|
|00003d10| 64 72 20 6f 66 20 65 6e | 64 20 6f 66 20 22 66 70 |dr of en|d of "fp|
|00003d20| 75 6c 6c 73 22 20 63 6f | 64 65 20 74 6f 20 72 30 |ulls" co|de to r0|
|00003d30| 0d 09 72 30 09 09 72 33 | 20 72 30 09 09 09 73 75 |..r0..r3| r0...su|
|00003d40| 62 66 2c 09 09 5c 20 73 | 75 62 74 72 61 63 74 20 |bf,..\ s|ubtract |
|00003d50| 6f 66 66 73 65 74 0d 09 | 72 30 09 09 09 09 09 09 |offset..|r0......|
|00003d60| 6d 74 63 74 72 2c 0d 09 | 09 09 09 09 09 09 62 63 |mtctr,..|......bc|
|00003d70| 74 72 6c 2c 09 09 5c 20 | 70 75 6c 6c 20 74 68 65 |trl,..\ |pull the|
|00003d80| 20 66 70 20 63 65 6c 6c | 73 20 77 65 20 6e 65 65 | fp cell|s we nee|
|00003d90| 64 20 69 6e 74 6f 20 66 | 70 20 72 65 67 73 0d 0d |d into f|p regs..|
|00003da0| 09 72 33 09 09 72 36 20 | 33 30 20 32 36 20 32 39 |.r3..r6 |30 26 29|
|00003db0| 09 72 6c 77 69 6e 6d 2c | 09 09 09 5c 20 72 33 20 |.rlwinm,|...\ r3 |
|00003dc0| 3d 20 23 20 70 61 72 6d | 73 2c 20 74 69 6d 65 73 |= # parm|s, times|
|00003dd0| 20 34 0d 09 72 30 09 09 | 38 09 09 09 09 6c 69 2c | 4..r0..|8....li,|
|00003de0| 0d 09 72 33 09 09 72 30 | 09 09 09 09 63 6d 70 2c |..r3..r0|....cmp,|
|00003df0| 0d 20 6c 74 20 69 66 2c | 0d 09 20 20 72 33 09 72 |. lt if,|.. r3.r|
|00003e00| 30 09 09 09 09 6d 72 2c | 09 09 09 5c 20 69 66 20 |0....mr,|...\ if |
|00003e10| 3c 20 38 2c 20 6d 61 6b | 65 20 69 74 20 38 20 73 |< 8, mak|e it 8 s|
|00003e20| 69 6e 63 65 20 74 68 61 | 74 27 73 20 6f 75 72 20 |ince tha|t's our |
|00003e30| 6d 69 6e 69 6d 75 6d 0d | 20 74 68 65 6e 2c 0d 09 |minimum.| then,..|
|00003e40| 0d 09 72 30 09 09 27 20 | 70 75 6c 6c 73 20 33 34 |..r0..' |pulls 34|
|00003e50| 20 2b 09 64 69 63 61 64 | 64 72 2c 09 5c 20 61 64 | +.dicad|dr,.\ ad|
|00003e60| 64 72 20 6f 66 20 65 6e | 64 20 6f 66 20 22 70 75 |dr of en|d of "pu|
|00003e70| 6c 6c 73 22 20 63 6f 64 | 65 20 74 6f 20 72 30 0d |lls" cod|e to r0.|
|00003e80| 09 72 30 09 09 72 33 20 | 72 30 09 09 09 73 75 62 |.r0..r3 |r0...sub|
|00003e90| 66 2c 09 09 5c 20 73 75 | 62 74 72 61 63 74 20 6f |f,..\ su|btract o|
|00003ea0| 66 66 73 65 74 0d 09 72 | 30 09 09 09 09 09 09 6d |ffset..r|0......m|
|00003eb0| 74 63 74 72 2c 0d 09 09 | 09 09 09 09 09 62 63 74 |tctr,...|.....bct|
|00003ec0| 72 6c 2c 09 09 5c 20 70 | 75 6c 6c 20 74 68 65 20 |rl,..\ p|ull the |
|00003ed0| 63 65 6c 6c 73 20 77 65 | 20 6e 65 65 64 20 69 6e |cells we| need in|
|00003ee0| 74 6f 20 72 65 67 73 0d | 0d 74 68 65 6e 2c 0d 0d |to regs.|.then,..|
|00003ef0| 09 72 53 50 09 09 34 09 | 09 09 09 61 64 64 69 2c |.rSP..4.|...addi,|
|00003f00| 09 09 5c 20 73 74 61 63 | 6b 20 70 74 72 73 20 62 |..\ stac|k ptrs b|
|00003f10| 61 63 6b 20 74 6f 20 6e | 6f 72 6d 61 6c 0d 09 72 |ack to n|ormal..r|
|00003f20| 46 53 50 09 38 09 09 09 | 09 61 64 64 69 2c 0d 0d |FSP.8...|.addi,..|
|00003f30| 5c 20 6e 6f 77 20 77 65 | 20 68 61 76 65 20 74 6f |\ now we| have to|
|00003f40| 20 38 2d 62 79 74 65 20 | 61 6c 69 67 6e 20 74 68 | 8-byte |align th|
|00003f50| 65 20 52 50 20 73 69 6e | 63 65 20 61 6e 79 74 68 |e RP sin|ce anyth|
|00003f60| 69 6e 67 20 6d 69 67 68 | 74 20 68 61 70 70 65 6e |ing migh|t happen|
|00003f70| 20 69 6e 20 74 68 65 20 | 63 61 6c 6c 65 65 2e 0d | in the |callee..|
|00003f80| 5c 20 49 66 20 77 65 20 | 68 61 76 65 20 74 6f 20 |\ If we |have to |
|00003f90| 64 6f 20 69 74 20 77 65 | 27 6c 6c 20 70 75 73 68 |do it we|'ll push|
|00003fa0| 20 61 20 34 2d 62 79 74 | 65 20 7a 65 72 6f 2e 20 | a 4-byt|e zero. |
|00003fb0| 20 53 69 6e 63 65 20 72 | 58 2c 20 74 68 65 20 6c | Since r|X, the l|
|00003fc0| 61 73 74 20 72 65 67 20 | 77 65 20 73 61 76 65 64 |ast reg |we saved|
|00003fd0| 0d 5c 20 20 74 68 65 72 | 65 2c 20 63 61 6e 20 6e |.\ ther|e, can n|
|00003fe0| 65 76 65 72 20 62 65 20 | 7a 65 72 6f 2c 20 74 68 |ever be |zero, th|
|00003ff0| 69 73 20 6c 65 74 73 20 | 75 73 20 73 6f 72 74 73 |is lets |us sorts|
|00004000| 20 74 68 69 6e 67 73 20 | 6f 75 74 20 77 68 65 6e | things |out when|
|00004010| 20 74 68 65 20 63 61 6c | 6c 65 65 20 72 65 74 75 | the cal|lee retu|
|00004020| 72 6e 73 2e 0d 0d 09 72 | 30 09 09 72 52 50 09 37 |rns....r|0..rRP.7|
|00004030| 09 09 09 61 6e 64 69 2e | 2c 0d 6e 65 20 69 66 2c |...andi.|,.ne if,|
|00004040| 0d 09 72 30 09 09 30 09 | 09 09 09 6c 69 2c 0d 09 |..r0..0.|...li,..|
|00004050| 72 30 09 09 2d 34 09 72 | 52 50 09 09 09 73 74 77 |r0..-4.r|RP...stw|
|00004060| 75 2c 0d 74 68 65 6e 2c | 0d 0d 5c 20 6e 6f 77 20 |u,.then,|..\ now |
|00004070| 77 65 27 72 65 20 67 6f | 69 6e 67 20 74 6f 20 63 |we're go|ing to c|
|00004080| 61 6c 6c 20 74 68 65 20 | 72 6f 75 74 69 6e 65 20 |all the |routine |
|00004090| 2d 20 66 69 72 73 74 20 | 77 65 20 6e 65 65 64 20 |- first |we need |
|000040a0| 74 68 65 20 61 64 64 72 | 65 73 73 20 6f 66 20 69 |the addr|ess of i|
|000040b0| 74 73 0d 5c 20 20 66 69 | 72 73 74 20 69 6e 73 74 |ts.\ fi|rst inst|
|000040c0| 72 75 63 74 69 6f 6e 2e | 0d 0d 09 72 30 09 09 72 |ruction.|...r0..r|
|000040d0| 36 09 24 20 31 30 30 30 | 09 09 61 6e 64 69 2e 2c |6.$ 1000|..andi.,|
|000040e0| 09 09 5c 20 6c 6f 6f 6b | 20 61 74 20 22 66 70 22 |..\ look| at "fp"|
|000040f0| 20 62 69 74 20 69 6e 20 | 66 6c 61 67 73 0d 6e 65 | bit in |flags.ne|
|00004100| 20 69 66 2c 0d 09 72 30 | 09 09 72 58 09 36 09 09 | if,..r0|..rX.6..|
|00004110| 09 61 64 64 69 2c 0d 65 | 6c 73 65 2c 0d 09 72 30 |.addi,.e|lse,..r0|
|00004120| 09 09 72 58 09 32 09 09 | 09 61 64 64 69 2c 09 09 |..rX.2..|.addi,..|
|00004130| 5c 20 61 64 64 72 20 6f | 66 20 63 6f 64 65 20 74 |\ addr o|f code t|
|00004140| 6f 20 72 30 0d 74 68 65 | 6e 2c 0d 0d 09 72 30 09 |o r0.the|n,...r0.|
|00004150| 09 09 09 09 09 6d 74 63 | 74 72 2c 0d 0d 5c 20 2a |.....mtc|tr,..\ *|
|00004160| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000041a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 0d 09 09 09 09 09 09 |********|*.......|
|000041b0| 09 62 63 74 72 6c 2c 09 | 09 5c 20 63 61 6c 6c 20 |.bctrl,.|.\ call |
|000041c0| 69 74 0d 5c 20 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |it.\ ***|********|
|000041d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000041e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000041f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004200| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0d |********|*******.|
|00004210| 0d 5c 20 41 74 20 74 68 | 69 73 20 70 6f 69 6e 74 |.\ At th|is point|
|00004220| 20 77 65 20 68 61 76 65 | 20 74 6f 20 61 6c 6c 6f | we have| to allo|
|00004230| 77 20 66 6f 72 20 74 68 | 65 20 6d 61 78 69 6d 75 |w for th|e maximu|
|00004240| 6d 20 6e 75 6d 62 65 72 | 20 6f 66 20 6c 69 76 65 |m number| of live|
|00004250| 20 76 61 6c 75 65 73 0d | 5c 20 20 69 6e 20 47 50 | values.|\ in GP|
|00004260| 52 73 2c 20 77 68 69 63 | 68 20 69 73 20 36 2e 20 |Rs, whic|h is 6. |
|00004270| 20 54 68 69 73 20 6d 65 | 61 6e 73 20 72 39 20 77 | This me|ans r9 w|
|00004280| 69 6c 6c 20 61 6c 77 61 | 79 73 20 62 65 20 66 72 |ill alwa|ys be fr|
|00004290| 65 65 20 68 65 72 65 2c | 0d 5c 20 20 61 6e 64 20 |ee here,|.\ and |
|000042a0| 77 65 20 63 61 6e 20 61 | 6c 73 6f 20 75 73 65 20 |we can a|lso use |
|000042b0| 72 30 2c 20 72 58 2c 20 | 72 59 20 61 6e 64 20 72 |r0, rX, |rY and r|
|000042c0| 5a 20 28 61 6b 61 20 72 | 31 30 29 2e 0d 0d 09 72 |Z (aka r|10)....r|
|000042d0| 58 09 09 30 09 72 52 50 | 09 09 09 6c 77 7a 2c 09 |X..0.rRP|...lwz,.|
|000042e0| 09 5c 20 72 65 73 74 6f | 72 65 20 72 58 0d 09 72 |.\ resto|re rX..r|
|000042f0| 58 09 09 30 09 09 09 09 | 63 6d 70 69 2c 0d 65 71 |X..0....|cmpi,.eq|
|00004300| 20 69 66 2c 09 09 09 09 | 09 09 09 09 09 5c 20 62 | if,....|.....\ b|
|00004310| 75 74 20 69 66 20 77 65 | 20 67 6f 74 20 7a 65 72 |ut if we| got zer|
|00004320| 6f 2c 20 69 74 20 77 61 | 73 20 61 6c 69 67 6e 6d |o, it wa|s alignm|
|00004330| 65 6e 74 0d 09 72 52 50 | 09 09 34 09 09 09 09 61 |ent..rRP|..4....a|
|00004340| 64 64 69 2c 09 09 5c 20 | 20 70 61 64 64 69 6e 67 |ddi,..\ | padding|
|00004350| 2c 20 73 6f 20 77 65 20 | 73 6b 69 70 20 69 74 20 |, so we |skip it |
|00004360| 61 6e 64 20 74 72 79 20 | 61 67 61 69 6e 0d 09 72 |and try |again..r|
|00004370| 58 09 09 30 09 72 52 50 | 09 09 09 6c 77 7a 2c 09 |X..0.rRP|...lwz,.|
|00004380| 09 5c 20 72 65 73 74 6f | 72 65 20 72 58 0d 74 68 |.\ resto|re rX.th|
|00004390| 65 6e 2c 0d 09 72 31 30 | 09 09 34 09 72 52 50 09 |en,..r10|..4.rRP.|
|000043a0| 09 09 6c 77 7a 2c 09 09 | 5c 20 72 65 73 74 6f 72 |..lwz,..|\ restor|
|000043b0| 65 20 66 6c 61 67 20 62 | 79 74 65 73 2c 20 69 6e |e flag b|ytes, in|
|000043c0| 74 6f 20 72 31 30 20 74 | 68 69 73 20 74 69 6d 65 |to r10 t|his time|
|000043d0| 0d 09 72 39 09 09 38 09 | 72 52 50 09 09 09 6c 77 |..r9..8.|rRP...lw|
|000043e0| 7a 2c 09 09 5c 20 72 65 | 73 74 6f 72 65 20 68 61 |z,..\ re|store ha|
|000043f0| 6e 64 6c 65 72 20 63 6f | 64 65 20 74 6f 20 72 39 |ndler co|de to r9|
|00004400| 0d 09 72 52 50 09 09 31 | 32 09 09 09 09 61 64 64 |..rRP..1|2....add|
|00004410| 69 2c 0d 0d 5c 20 61 6c | 6c 20 77 65 20 6e 65 65 |i,..\ al|l we nee|
|00004420| 64 20 66 72 6f 6d 20 74 | 68 65 20 68 61 6e 64 6c |d from t|he handl|
|00004430| 65 72 20 63 6f 64 65 20 | 69 73 20 77 68 65 74 68 |er code |is wheth|
|00004440| 65 72 20 74 68 69 73 20 | 69 73 20 61 20 6d 65 74 |er this |is a met|
|00004450| 68 6f 64 20 6f 72 20 6e | 6f 74 2c 20 73 6f 0d 5c |hod or n|ot, so.\|
|00004460| 20 20 77 65 27 6c 6c 20 | 67 65 74 20 74 68 69 73 | we'll |get this|
|00004470| 20 74 6f 20 63 72 31 2c | 20 74 68 65 6e 20 77 65 | to cr1,| then we|
|00004480| 20 63 61 6e 20 72 65 75 | 73 65 20 72 39 2e 0d 0d | can reu|se r9...|
|00004490| 09 72 30 09 09 72 39 09 | 24 20 46 46 09 09 61 6e |.r0..r9.|$ FF..an|
|000044a0| 64 69 2e 2c 0d 09 63 72 | 31 09 09 72 30 09 24 20 |di.,..cr|1..r0.$ |
|000044b0| 34 30 09 09 63 6d 70 6c | 69 2c 09 09 5c 20 63 72 |40..cmpl|i,..\ cr|
|000044c0| 31 20 69 73 20 22 65 71 | 75 61 6c 22 20 69 66 20 |1 is "eq|ual" if |
|000044d0| 69 74 27 73 20 61 20 6d | 65 74 68 6f 64 0d 0d 09 |it's a m|ethod...|
|000044e0| 72 30 09 09 72 31 30 09 | 24 20 31 30 30 30 09 09 |r0..r10.|$ 1000..|
|000044f0| 61 6e 64 69 2e 2c 09 09 | 5c 20 6c 6f 6f 6b 20 61 |andi.,..|\ look a|
|00004500| 74 20 22 66 70 22 20 62 | 69 74 20 69 6e 20 66 6c |t "fp" b|it in fl|
|00004510| 61 67 73 0d 20 6e 65 20 | 69 66 2c 0d 09 20 20 72 |ags. ne |if,.. r|
|00004520| 39 09 34 09 72 58 09 09 | 09 6c 68 7a 2c 09 09 5c |9.4.rX..|.lhz,..\|
|00004530| 20 69 66 20 73 65 74 2c | 20 67 65 74 20 46 50 20 | if set,| get FP |
|00004540| 66 6c 61 67 20 62 79 74 | 65 73 20 74 6f 20 72 39 |flag byt|es to r9|
|00004550| 0d 20 65 6c 73 65 2c 0d | 20 09 20 20 72 39 09 24 |. else,.| . r9.$|
|00004560| 20 30 32 30 30 09 09 09 | 6c 69 2c 09 09 09 5c 20 | 0200...|li,...\ |
|00004570| 6f 74 68 65 72 77 69 73 | 65 20 70 75 74 20 64 65 |otherwis|e put de|
|00004580| 66 61 75 6c 74 20 66 6c | 61 67 20 62 79 74 65 73 |fault fl|ag bytes|
|00004590| 20 74 68 65 72 65 0d 20 | 74 68 65 6e 2c 0d 0d 09 | there. |then,...|
|000045a0| 72 30 09 09 72 31 30 09 | 24 20 38 30 30 30 09 09 |r0..r10.|$ 8000..|
|000045b0| 61 6e 64 69 2e 2c 09 09 | 5c 20 74 65 73 74 20 22 |andi.,..|\ test "|
|000045c0| 6c 65 61 66 22 20 62 69 | 74 20 69 6e 20 66 6c 61 |leaf" bi|t in fla|
|000045d0| 67 73 0d 6e 65 20 69 66 | 2c 0d 5c 20 69 74 20 77 |gs.ne if|,.\ it w|
|000045e0| 61 73 20 61 20 6c 65 61 | 66 20 72 6f 75 74 69 6e |as a lea|f routin|
|000045f0| 65 2e 0d 0d 20 63 72 31 | 20 65 71 20 69 66 2c 09 |e... cr1| eq if,.|
|00004600| 09 09 09 09 09 09 09 5c | 20 6d 65 74 68 6f 64 3f |.......\| method?|
|00004610| 0d 09 72 32 30 09 09 72 | 52 50 09 09 09 09 6c 77 |..r20..r|RP....lw|
|00004620| 7a 2c 09 09 5c 20 79 65 | 73 20 2d 20 72 65 73 74 |z,..\ ye|s - rest|
|00004630| 6f 72 65 20 72 32 30 0d | 09 72 52 50 09 09 34 09 |ore r20.|.rRP..4.|
|00004640| 09 09 09 61 64 64 69 2c | 0d 20 74 68 65 6e 2c 0d |...addi,|. then,.|
|00004650| 0d 09 72 59 09 09 72 31 | 30 20 32 20 32 36 20 32 |..rY..r1|0 2 26 2|
|00004660| 39 09 09 72 6c 77 69 6e | 6d 2c 09 09 5c 20 72 59 |9..rlwin|m,..\ rY|
|00004670| 20 3d 20 23 20 70 61 72 | 6d 73 2b 6c 6f 63 61 6c | = # par|ms+local|
|00004680| 73 2c 20 74 69 6d 65 73 | 20 34 0d 09 72 30 09 09 |s, times| 4..r0..|
|00004690| 27 20 72 65 73 74 6f 72 | 65 73 20 34 36 20 2b 09 |' restor|es 46 +.|
|000046a0| 64 69 63 61 64 64 72 2c | 09 5c 20 61 64 64 72 20 |dicaddr,|.\ addr |
|000046b0| 6f 66 20 65 6e 64 20 6f | 66 20 22 72 65 73 74 6f |of end o|f "resto|
|000046c0| 72 65 73 22 20 63 6f 64 | 65 20 74 6f 20 72 30 0d |res" cod|e to r0.|
|000046d0| 09 72 30 09 09 72 59 20 | 72 30 09 09 09 73 75 62 |.r0..rY |r0...sub|
|000046e0| 66 2c 09 09 5c 20 73 75 | 62 74 72 61 63 74 20 6f |f,..\ su|btract o|
|000046f0| 66 66 73 65 74 0d 09 72 | 52 50 09 09 72 52 50 09 |ffset..r|RP..rRP.|
|00004700| 72 59 09 09 09 61 64 64 | 2c 09 09 5c 20 69 6e 63 |rY...add|,..\ inc|
|00004710| 72 65 6d 65 6e 74 20 72 | 52 50 20 6f 76 65 72 20 |rement r|RP over |
|00004720| 73 61 76 65 64 20 47 50 | 52 73 0d 09 72 30 09 09 |saved GP|Rs..r0..|
|00004730| 09 09 09 09 6d 74 63 74 | 72 2c 0d 09 09 09 09 09 |....mtct|r,......|
|00004740| 09 09 62 63 74 72 6c 2c | 09 09 5c 20 72 65 73 74 |..bctrl,|..\ rest|
|00004750| 6f 72 65 20 74 68 65 20 | 73 61 76 65 64 20 72 65 |ore the |saved re|
|00004760| 67 73 0d 0d 09 72 59 09 | 09 72 39 20 32 20 32 36 |gs...rY.|.r9 2 26|
|00004770| 20 32 39 09 09 72 6c 77 | 69 6e 6d 2c 09 09 5c 20 | 29..rlw|inm,..\ |
|00004780| 72 59 20 3d 20 23 20 46 | 50 20 70 61 72 6d 2b 6c |rY = # F|P parm+l|
|00004790| 6f 63 61 6c 73 2c 20 74 | 69 6d 65 73 20 34 0d 09 |ocals, t|imes 4..|
|000047a0| 72 30 09 27 20 66 72 65 | 73 74 6f 72 65 73 20 34 |r0.' fre|stores 4|
|000047b0| 36 20 2b 09 64 69 63 61 | 64 64 72 2c 09 5c 20 61 |6 +.dica|ddr,.\ a|
|000047c0| 64 64 72 20 6f 66 20 65 | 6e 64 20 6f 66 20 22 66 |ddr of e|nd of "f|
|000047d0| 72 65 73 74 6f 72 65 73 | 22 20 63 6f 64 65 20 74 |restores|" code t|
|000047e0| 6f 20 72 30 0d 09 72 30 | 09 09 72 59 20 72 30 09 |o r0..r0|..rY r0.|
|000047f0| 09 09 73 75 62 66 2c 09 | 09 5c 20 73 75 62 74 72 |..subf,.|.\ subtr|
|00004800| 61 63 74 20 6f 66 66 73 | 65 74 0d 09 72 52 50 09 |act offs|et..rRP.|
|00004810| 09 72 59 09 09 09 09 61 | 64 64 2c 09 09 5c 20 69 |.rY....a|dd,..\ i|
|00004820| 6e 63 72 65 6d 65 6e 74 | 20 72 52 50 20 6f 76 65 |ncrement| rRP ove|
|00004830| 72 20 73 61 76 65 64 20 | 46 50 52 73 20 28 38 20 |r saved |FPRs (8 |
|00004840| 62 79 74 65 73 0d 09 72 | 52 50 09 09 72 59 09 09 |bytes..r|RP..rY..|
|00004850| 09 09 61 64 64 2c 09 09 | 5c 20 20 65 61 63 68 29 |..add,..|\ each)|
|00004860| 0d 09 72 30 09 09 09 09 | 09 09 6d 74 63 74 72 2c |..r0....|..mtctr,|
|00004870| 0d 09 09 09 09 09 09 09 | 62 63 74 72 6c 2c 09 09 |........|bctrl,..|
|00004880| 5c 20 72 65 73 74 6f 72 | 65 20 74 68 65 20 73 61 |\ restor|e the sa|
|00004890| 76 65 64 20 46 50 52 73 | 09 0d 74 68 65 6e 2c 0d |ved FPRs|..then,.|
|000048a0| 0d 5c 20 6e 6f 77 20 77 | 65 20 70 75 73 68 20 6f |.\ now w|e push o|
|000048b0| 66 66 20 61 6c 6c 20 72 | 65 73 75 6c 74 20 72 65 |ff all r|esult re|
|000048c0| 67 73 20 74 6f 20 6d 65 | 6d 20 2d 20 77 65 20 72 |gs to me|m - we r|
|000048d0| 65 74 75 72 6e 20 32 20 | 69 6e 20 47 50 52 73 20 |eturn 2 |in GPRs |
|000048e0| 61 6e 64 20 32 20 69 6e | 20 46 50 52 73 0d 5c 20 |and 2 in| FPRs.\ |
|000048f0| 66 72 6f 6d 20 68 65 72 | 65 2c 20 62 75 74 20 69 |from her|e, but i|
|00004900| 74 27 73 20 65 61 73 69 | 65 73 74 20 74 6f 20 67 |t's easi|est to g|
|00004910| 72 61 62 20 74 68 6f 73 | 65 20 62 61 63 6b 20 61 |rab thos|e back a|
|00004920| 66 74 65 72 20 74 68 65 | 20 70 75 73 68 65 73 2e |fter the| pushes.|
|00004930| 0d 0d 09 72 59 09 09 72 | 31 30 20 32 36 20 32 36 |...rY..r|10 26 26|
|00004940| 20 32 39 09 72 6c 77 69 | 6e 6d 2c 09 09 5c 20 72 | 29.rlwi|nm,..\ r|
|00004950| 59 20 3d 20 23 20 72 65 | 73 75 6c 74 20 72 65 67 |Y = # re|sult reg|
|00004960| 73 2c 20 74 69 6d 65 73 | 20 34 0d 09 72 30 09 09 |s, times| 4..r0..|
|00004970| 27 20 70 75 73 68 65 73 | 20 33 34 20 2b 09 64 69 |' pushes| 34 +.di|
|00004980| 63 61 64 64 72 2c 09 5c | 20 61 64 64 72 20 6f 66 |caddr,.\| addr of|
|00004990| 20 65 6e 64 20 6f 66 20 | 22 70 75 73 68 65 73 22 | end of |"pushes"|
|000049a0| 20 63 6f 64 65 20 74 6f | 20 72 30 0d 09 72 30 09 | code to| r0..r0.|
|000049b0| 09 72 59 09 72 30 09 09 | 09 73 75 62 66 2c 09 09 |.rY.r0..|.subf,..|
|000049c0| 5c 20 73 75 62 74 72 61 | 63 74 20 6f 66 66 73 65 |\ subtra|ct offse|
|000049d0| 74 0d 09 72 30 09 09 09 | 09 09 09 6d 74 63 74 72 |t..r0...|...mtctr|
|000049e0| 2c 0d 09 09 09 09 09 09 | 09 62 63 74 72 6c 2c 09 |,.......|.bctrl,.|
|000049f0| 09 5c 20 70 75 73 68 20 | 61 6c 6c 20 72 65 73 75 |.\ push |all resu|
|00004a00| 6c 74 20 72 65 67 73 20 | 74 6f 20 6d 65 6d 0d 09 |lt regs |to mem..|
|00004a10| 72 53 50 09 09 72 59 20 | 72 53 50 09 09 09 73 75 |rSP..rY |rSP...su|
|00004a20| 62 66 2c 09 09 5c 20 61 | 64 6a 75 73 74 20 73 74 |bf,..\ a|djust st|
|00004a30| 61 63 6b 20 70 74 72 0d | 0d 20 09 72 59 09 09 72 |ack ptr.|. .rY..r|
|00004a40| 39 20 32 36 20 32 36 20 | 32 39 09 09 72 6c 77 69 |9 26 26 |29..rlwi|
|00004a50| 6e 6d 2c 09 09 5c 20 72 | 59 20 3d 20 23 20 46 50 |nm,..\ r|Y = # FP|
|00004a60| 20 72 65 73 75 6c 74 20 | 72 65 67 73 2c 20 74 69 | result |regs, ti|
|00004a70| 6d 65 73 20 34 0d 09 72 | 30 09 09 27 20 66 70 75 |mes 4..r|0..' fpu|
|00004a80| 73 68 65 73 20 33 34 20 | 2b 09 64 69 63 61 64 64 |shes 34 |+.dicadd|
|00004a90| 72 2c 09 5c 20 61 64 64 | 72 20 6f 66 20 65 6e 64 |r,.\ add|r of end|
|00004aa0| 20 6f 66 20 22 66 70 75 | 73 68 65 73 22 20 63 6f | of "fpu|shes" co|
|00004ab0| 64 65 20 74 6f 20 72 30 | 0d 09 72 30 09 09 72 59 |de to r0|..r0..rY|
|00004ac0| 09 72 30 09 09 09 73 75 | 62 66 2c 09 09 5c 20 73 |.r0...su|bf,..\ s|
|00004ad0| 75 62 74 72 61 63 74 20 | 6f 66 66 73 65 74 0d 09 |ubtract |offset..|
|00004ae0| 72 30 09 09 09 09 09 09 | 6d 74 63 74 72 2c 0d 09 |r0......|mtctr,..|
|00004af0| 09 09 09 09 09 09 62 63 | 74 72 6c 2c 09 09 5c 20 |......bc|trl,..\ |
|00004b00| 70 75 73 68 20 61 6c 6c | 20 72 65 73 75 6c 74 20 |push all| result |
|00004b10| 72 65 67 73 20 74 6f 20 | 6d 65 6d 0d 09 72 59 09 |regs to |mem..rY.|
|00004b20| 09 72 59 09 09 09 09 61 | 64 64 2c 0d 09 72 46 53 |.rY....a|dd,..rFS|
|00004b30| 50 09 72 59 20 72 46 53 | 50 09 09 09 73 75 62 66 |P.rY rFS|P...subf|
|00004b40| 2c 09 09 5c 20 61 64 6a | 75 73 74 20 73 74 61 63 |,..\ adj|ust stac|
|00004b50| 6b 20 70 74 72 0d 0d 0d | 09 72 34 09 09 30 09 72 |k ptr...|.r4..0.r|
|00004b60| 53 50 09 09 09 6c 77 7a | 2c 0d 09 72 33 09 09 34 |SP...lwz|,..r3..4|
|00004b70| 09 72 53 50 09 09 09 6c | 77 7a 2c 0d 09 72 53 50 |.rSP...l|wz,..rSP|
|00004b80| 09 09 38 09 09 09 09 61 | 64 64 69 2c 0d 09 0d 09 |..8....a|ddi,....|
|00004b90| 66 72 32 09 09 30 09 72 | 46 53 50 09 09 6c 66 64 |fr2..0.r|FSP..lfd|
|00004ba0| 2c 0d 09 66 72 31 09 09 | 38 09 72 46 53 50 09 09 |,..fr1..|8.rFSP..|
|00004bb0| 6c 66 64 2c 0d 09 72 46 | 53 50 09 31 36 09 09 09 |lfd,..rF|SP.16...|
|00004bc0| 09 61 64 64 69 2c 0d 0d | 09 72 30 09 09 30 09 72 |.addi,..|.r0..0.r|
|00004bd0| 52 50 09 09 09 6c 77 7a | 2c 0d 09 72 52 50 20 09 |RP...lwz|,..rRP .|
|00004be0| 38 09 09 09 09 61 64 64 | 69 2c 0d 09 72 30 09 09 |8....add|i,..r0..|
|00004bf0| 09 09 09 09 6d 74 6c 72 | 2c 09 09 5c 20 72 65 73 |....mtlr|,..\ res|
|00004c00| 74 6f 72 65 20 6c 72 0d | 09 09 09 09 09 09 09 62 |tore lr.|.......b|
|00004c10| 6c 72 2c 09 09 5c 20 61 | 6e 64 20 72 65 74 75 72 |lr,..\ a|nd retur|
|00004c20| 6e 2e 0d 3b 70 70 63 5f | 63 6f 64 65 09 09 75 73 |n..;ppc_|code..us|
|00004c30| 65 73 5f 63 74 72 0d 0d | 0d 3a 20 45 58 45 43 55 |es_ctr..|.: EXECU|
|00004c40| 54 45 20 20 28 20 78 74 | 20 2d 2d 20 3f 3f 20 29 |TE ( xt| -- ?? )|
|00004c50| 0d 09 64 75 70 20 32 2d | 20 77 40 20 24 20 42 43 |..dup 2-| w@ $ BC|
|00004c60| 34 31 20 3d 0d 09 49 46 | 09 09 09 09 09 09 09 5c |41 =..IF|.......\|
|00004c70| 20 69 74 27 73 20 61 20 | 4d 41 52 4b 45 52 0d 09 | it's a |MARKER..|
|00004c80| 09 32 2b 20 66 6d 72 6b | 20 20 45 58 49 54 0d 09 |.2+ fmrk| EXIT..|
|00004c90| 54 48 45 4e 0d 0d 09 64 | 75 70 20 32 2d 20 77 40 |THEN...d|up 2- w@|
|00004ca0| 20 24 20 42 43 30 43 20 | 3d 0d 09 49 46 09 09 09 | $ BC0C |=..IF...|
|00004cb0| 09 09 09 09 5c 20 69 74 | 27 73 20 61 20 44 4f 45 |....\ it|'s a DOE|
|00004cc0| 53 3e 20 77 6f 72 64 0d | 09 09 64 75 70 20 32 2b |S> word.|..dup 2+|
|00004cd0| 20 40 61 62 73 09 09 09 | 09 5c 20 67 65 74 20 61 | @abs...|.\ get a|
|00004ce0| 64 64 72 20 6f 66 20 43 | 52 45 41 54 45 64 20 64 |ddr of C|REATEd d|
|00004cf0| 61 74 61 0d 09 09 73 77 | 61 70 20 36 20 2b 20 40 |ata...sw|ap 6 + @|
|00004d00| 61 62 73 09 09 09 5c 20 | 61 6e 64 20 78 74 20 6f |abs...\ |and xt o|
|00004d10| 66 20 44 4f 45 53 3e 20 | 63 6f 64 65 0d 09 45 4c |f DOES> |code..EL|
|00004d20| 53 45 0d 09 09 42 45 47 | 49 4e 0d 09 09 09 64 75 |SE...BEG|IN....du|
|00004d30| 70 20 32 2d 20 77 40 20 | 24 20 42 43 30 35 20 3d |p 2- w@ |$ BC05 =|
|00004d40| 0d 09 09 57 48 49 4c 45 | 09 09 09 09 09 5c 20 69 |...WHILE|.....\ i|
|00004d50| 74 27 73 20 61 20 76 65 | 63 74 6f 72 0d 09 09 09 |t's a ve|ctor....|
|00004d60| 32 2b 20 40 61 62 73 09 | 09 09 09 5c 20 67 6f 74 |2+ @abs.|...\ got|
|00004d70| 6f 20 64 61 74 61 20 61 | 72 65 61 0d 09 09 09 40 |o data a|rea....@|
|00004d80| 61 62 73 09 09 09 09 5c | 20 70 69 63 6b 20 75 70 |abs....\| pick up|
|00004d90| 20 64 65 73 74 20 78 74 | 0d 09 09 52 45 50 45 41 | dest xt|...REPEA|
|00004da0| 54 09 09 09 09 09 5c 20 | 61 6e 64 20 6c 6f 6f 70 |T.....\ |and loop|
|00004db0| 20 69 6e 20 63 61 73 65 | 20 77 65 20 67 65 74 20 | in case| we get |
|00004dc0| 61 6e 6f 74 68 65 72 20 | 76 65 63 74 6f 72 0d 09 |another |vector..|
|00004dd0| 0d 09 09 64 75 70 20 32 | 2d 20 77 40 20 24 20 42 |...dup 2|- w@ $ B|
|00004de0| 44 32 45 20 3d 0d 09 09 | 49 46 09 09 09 09 09 09 |D2E =...|IF......|
|00004df0| 5c 20 69 74 27 73 20 61 | 6e 20 65 78 70 6f 72 74 |\ it's a|n export|
|00004e00| 65 64 20 77 6f 72 64 0d | 09 09 09 5b 27 5d 20 65 |ed word.|...['] e|
|00004e10| 6e 74 65 72 4d 6f 64 09 | 09 5c 20 66 6f 72 20 74 |nterMod.|.\ for t|
|00004e20| 68 65 73 65 20 77 65 20 | 65 78 65 63 75 74 65 20 |hese we |execute |
|00004e30| 65 6e 74 65 72 4d 6f 64 | 20 77 68 69 63 68 0d 09 |enterMod| which..|
|00004e40| 09 54 48 45 4e 09 09 09 | 09 09 5c 20 20 64 6f 65 |.THEN...|..\ doe|
|00004e50| 73 20 74 68 65 20 77 6f | 72 6b 0d 09 54 48 45 4e |s the wo|rk..THEN|
|00004e60| 0d 0d 09 28 65 78 29 09 | 09 09 5c 20 28 65 78 29 |...(ex).|..\ (ex)|
|00004e70| 20 64 6f 65 73 20 74 68 | 65 20 61 63 74 75 61 6c | does th|e actual|
|00004e80| 20 77 6f 72 6b 20 6f 66 | 20 65 78 65 63 75 74 69 | work of| executi|
|00004e90| 6e 67 20 74 68 65 20 77 | 6f 72 64 0d 3b 0d 0d 0d |ng the w|ord.;...|
|00004ea0| 3a 20 44 6f 56 65 63 74 | 0d 09 40 61 62 73 20 65 |: DoVect|..@abs e|
|00004eb0| 78 65 63 75 74 65 20 20 | 3b 0d 0d 3a 20 44 6f 53 |xecute |;..: DoS|
|00004ec0| 76 65 63 74 0d 09 64 75 | 70 20 40 20 4e 49 46 20 |vect..du|p @ NIF |
|00004ed0| 20 34 2b 20 20 54 48 45 | 4e 0d 09 40 61 62 73 20 | 4+ THE|N..@abs |
|00004ee0| 65 78 65 63 75 74 65 20 | 20 3b 0d 0d 3a 20 5e 54 |execute | ;..: ^T|
|00004ef0| 48 45 50 4f 52 54 20 20 | 28 20 2d 2d 20 61 64 64 |HEPORT |( -- add|
|00004f00| 72 20 29 0d 09 69 6e 6c | 69 6e 65 7b 20 71 64 20 |r )..inl|ine{ qd |
|00004f10| 32 35 36 20 2b 7d 20 20 | 3b 09 09 5c 20 73 68 6f |256 +} |;..\ sho|
|00004f20| 75 6c 64 20 74 68 65 6f | 72 65 74 69 63 61 6c 6c |uld theo|reticall|
|00004f30| 79 20 6f 6e 6c 79 20 62 | 65 20 31 31 30 2c 20 62 |y only b|e 110, b|
|00004f40| 75 74 20 77 65 0d 09 09 | 09 09 09 09 09 09 5c 20 |ut we...|......\ |
|00004f50| 20 73 65 65 6d 20 74 6f | 20 6e 65 65 64 20 6d 6f | seem to| need mo|
|00004f60| 72 65 20 2d 20 73 65 65 | 20 63 6f 6d 6d 65 6e 74 |re - see| comment|
|00004f70| 20 61 74 20 71 64 0d 0d | 3a 20 54 48 45 50 4f 52 | at qd..|: THEPOR|
|00004f80| 54 20 20 28 20 2d 2d 20 | 61 64 64 72 2d 6f 66 2d |T ( -- |addr-of-|
|00004f90| 47 72 61 66 50 6f 72 74 | 20 29 0d 09 69 6e 6c 69 |GrafPort| )..inli|
|00004fa0| 6e 65 7b 20 71 64 20 32 | 35 36 20 2b 20 40 7d 20 |ne{ qd 2|56 + @} |
|00004fb0| 20 3b 0d 0d 0d 3a 20 53 | 43 52 45 45 4e 42 49 54 | ;...: S|CREENBIT|
|00004fc0| 53 20 20 7b 20 5c 20 5e | 72 65 63 74 20 2d 2d 20 |S { \ ^|rect -- |
|00004fd0| 6c 20 74 20 72 20 62 20 | 7d 0d 09 71 64 20 20 24 |l t r b |}..qd $|
|00004fe0| 20 38 63 20 2b 20 20 2d | 3e 20 5e 72 65 63 74 0d | 8c + -|> ^rect.|
|00004ff0| 09 5e 72 65 63 74 20 32 | 2b 20 20 77 40 20 20 5e |.^rect 2|+ w@ ^|
|00005000| 72 65 63 74 20 20 20 20 | 77 40 0d 09 5e 72 65 63 |rect |w@..^rec|
|00005010| 74 20 36 20 2b 20 77 40 | 20 20 5e 72 65 63 74 20 |t 6 + w@| ^rect |
|00005020| 34 2b 20 77 40 0d 3b 0d | 0d 0d 28 2a 09 53 41 56 |4+ w@.;.|..(*.SAV|
|00005030| 45 5f 4d 4f 50 53 5f 52 | 45 47 53 20 73 61 76 65 |E_MOPS_R|EGS save|
|00005040| 73 20 74 68 65 20 4d 6f | 70 73 20 62 61 73 65 20 |s the Mo|ps base |
|00005050| 61 64 64 72 65 73 73 20 | 72 65 67 73 20 61 6e 64 |address |regs and|
|00005060| 20 73 74 61 63 6b 20 70 | 6f 69 6e 74 65 72 73 0d | stack p|ointers.|
|00005070| 09 69 6e 74 6f 20 74 68 | 65 20 54 4f 43 20 61 72 |.into th|e TOC ar|
|00005080| 65 61 2e 20 20 57 65 20 | 6e 65 65 64 20 74 68 65 |ea. We |need the|
|00005090| 73 65 20 73 61 76 65 64 | 20 76 61 6c 75 65 73 20 |se saved| values |
|000050a0| 66 6f 72 20 63 61 6c 6c | 62 61 63 6b 73 2c 20 61 |for call|backs, a|
|000050b0| 6e 64 0d 09 61 6c 73 6f | 20 69 66 20 69 66 20 77 |nd..also| if if w|
|000050c0| 65 27 72 65 20 61 20 73 | 68 61 72 65 64 20 6c 69 |e're a s|hared li|
|000050d0| 62 72 61 72 79 20 2d 20 | 69 6e 20 74 68 65 73 65 |brary - |in these|
|000050e0| 20 73 69 74 75 61 74 69 | 6f 6e 73 20 77 65 20 68 | situati|ons we h|
|000050f0| 61 76 65 0d 09 74 6f 20 | 72 65 73 74 6f 72 65 20 |ave..to |restore |
|00005100| 74 68 65 20 4d 6f 70 73 | 20 65 6e 76 69 72 6f 6e |the Mops| environ|
|00005110| 6d 65 6e 74 20 62 65 66 | 6f 72 65 20 77 65 20 63 |ment bef|ore we c|
|00005120| 61 6e 20 64 6f 20 61 6e | 79 74 68 69 6e 67 20 65 |an do an|ything e|
|00005130| 6c 73 65 2e 0d 09 54 68 | 65 73 65 20 73 61 76 65 |lse...Th|ese save|
|00005140| 64 20 76 61 6c 75 65 73 | 20 63 6f 6d 65 20 61 74 |d values| come at|
|00005150| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 6f 75 72 20 | the end| of our |
|00005160| 54 4f 43 2e 20 20 54 4f | 43 5f 73 69 7a 65 20 69 |TOC. TO|C_size i|
|00005170| 73 20 63 75 72 72 65 6e | 74 6c 79 0d 09 31 33 32 |s curren|tly..132|
|00005180| 2e 20 20 49 66 20 69 74 | 20 63 68 61 6e 67 65 73 |. If it| changes|
|00005190| 2c 20 77 65 27 6c 6c 20 | 68 61 76 65 20 74 6f 20 |, we'll |have to |
|000051a0| 63 68 61 6e 67 65 20 74 | 68 65 20 6e 75 6d 62 65 |change t|he numbe|
|000051b0| 72 73 20 68 65 72 65 2c | 20 61 6e 64 0d 09 69 6e |rs here,| and..in|
|000051c0| 20 67 65 74 5f 74 72 61 | 6e 73 69 74 69 6f 6e 5f | get_tra|nsition_|
|000051d0| 76 65 63 74 6f 72 20 62 | 65 6c 6f 77 2c 20 61 6e |vector b|elow, an|
|000051e0| 64 09 61 6c 73 6f 20 69 | 6e 20 3a 70 70 63 5f 70 |d.also i|n :ppc_p|
|000051f0| 72 6f 63 20 61 6e 64 20 | 3b 70 70 63 5f 70 72 6f |roc and |;ppc_pro|
|00005200| 63 0d 09 69 6e 20 7a 4f | 62 6a 69 6e 69 74 2e 0d |c..in zO|bjinit..|
|00005210| 2a 29 0d 0d 0d 3a 70 70 | 63 5f 63 6f 64 65 20 53 |*)...:pp|c_code S|
|00005220| 41 56 45 5f 4d 4f 50 53 | 5f 52 45 47 53 0d 09 72 |AVE_MOPS|_REGS..r|
|00005230| 31 33 09 09 31 30 34 09 | 72 54 4f 43 09 73 74 77 |13..104.|rTOC.stw|
|00005240| 2c 0d 09 72 31 34 09 09 | 31 30 38 09 72 54 4f 43 |,..r14..|108.rTOC|
|00005250| 09 73 74 77 2c 0d 09 72 | 31 35 09 09 31 31 32 09 |.stw,..r|15..112.|
|00005260| 72 54 4f 43 09 73 74 77 | 2c 0d 09 72 31 36 09 09 |rTOC.stw|,..r16..|
|00005270| 31 31 36 09 72 54 4f 43 | 09 73 74 77 2c 0d 09 72 |116.rTOC|.stw,..r|
|00005280| 31 37 09 09 31 32 30 09 | 72 54 4f 43 09 73 74 77 |17..120.|rTOC.stw|
|00005290| 2c 0d 09 72 31 38 09 09 | 31 32 34 09 72 54 4f 43 |,..r18..|124.rTOC|
|000052a0| 09 73 74 77 2c 0d 09 72 | 31 39 09 09 31 32 38 09 |.stw,..r|19..128.|
|000052b0| 72 54 4f 43 09 73 74 77 | 2c 0d 09 09 09 09 09 09 |rTOC.stw|,.......|
|000052c0| 62 6c 72 2c 0d 3b 70 70 | 63 5f 63 6f 64 65 0d 0d |blr,.;pp|c_code..|
|000052d0| 0d 5c 20 77 65 20 63 61 | 6c 6c 20 50 52 45 50 41 |.\ we ca|ll PREPA|
|000052e0| 52 45 5f 53 59 53 43 41 | 4c 4c 53 20 61 74 20 73 |RE_SYSCA|LLS at s|
|000052f0| 74 61 72 74 75 70 20 74 | 69 6d 65 20 74 6f 20 67 |tartup t|ime to g|
|00005300| 65 74 20 74 68 65 20 73 | 68 61 72 65 64 20 6c 69 |et the s|hared li|
|00005310| 62 72 61 72 69 65 73 0d | 5c 20 20 77 65 20 6e 65 |braries.|\ we ne|
|00005320| 65 64 2e 20 20 43 75 72 | 72 65 6e 74 6c 79 2c 20 |ed. Cur|rently, |
|00005330| 74 68 65 73 65 20 61 72 | 65 20 49 6e 74 65 72 66 |these ar|e Interf|
|00005340| 61 63 65 4c 69 62 20 61 | 6e 64 20 4d 61 74 68 4c |aceLib a|nd MathL|
|00005350| 69 62 2e 0d 0d 3a 20 67 | 65 74 5f 73 68 61 72 65 |ib...: g|et_share|
|00005360| 64 5f 6c 69 62 72 61 72 | 79 20 20 7b 20 61 64 64 |d_librar|y { add|
|00005370| 72 20 2d 2d 20 63 6f 6e | 6e 49 44 20 74 72 75 65 |r -- con|nID true|
|00005380| 20 20 7c 20 2d 2d 20 66 | 61 6c 73 65 20 7d 0d 09 | | -- f|alse }..|
|00005390| 61 64 64 72 09 09 09 09 | 09 09 5c 20 61 64 64 72 |addr....|..\ addr|
|000053a0| 20 69 73 20 70 61 73 63 | 61 6c 20 73 74 72 69 6e | is pasc|al strin|
|000053b0| 67 0d 09 27 74 79 70 65 | 20 70 77 70 63 09 09 09 |g..'type| pwpc...|
|000053c0| 09 09 5c 20 50 6f 77 65 | 72 50 43 20 6c 69 62 72 |..\ Powe|rPC libr|
|000053d0| 61 72 79 0d 09 31 09 09 | 09 09 09 09 09 5c 20 6c |ary..1..|.....\ l|
|000053e0| 6f 61 64 20 74 68 65 20 | 6c 69 62 72 61 72 79 20 |oad the |library |
|000053f0| 69 66 20 6e 6f 74 20 6c | 6f 61 64 65 64 0d 09 76 |if not l|oaded..v|
|00005400| 43 6f 6e 6e 49 44 0d 09 | 6d 61 69 6e 41 64 64 72 |ConnID..|mainAddr|
|00005410| 0d 09 65 72 72 4e 61 6d | 65 0d 09 25 5f 47 65 74 |..errNam|e..%_Get|
|00005420| 53 68 61 72 65 64 4c 69 | 62 72 61 72 79 20 20 3f |SharedLi|brary ?|
|00005430| 64 75 70 0d 09 49 46 20 | 20 2d 3e 20 73 79 73 74 |dup..IF | -> syst|
|00005440| 65 6d 5f 65 72 72 23 20 | 20 66 61 6c 73 65 20 20 |em_err# | false |
|00005450| 45 58 49 54 20 20 54 48 | 45 4e 0d 09 76 43 6f 6e |EXIT TH|EN..vCon|
|00005460| 6e 49 44 20 40 20 20 74 | 72 75 65 0d 3b 0d 0d 0d |nID @ t|rue.;...|
|00005470| 3a 20 67 65 74 5f 63 6f | 6e 6e 49 44 20 20 7b 20 |: get_co|nnID { |
|00005480| 5e 65 78 74 65 72 6e 20 | 5c 20 5e 6c 69 62 20 5e |^extern |\ ^lib ^|
|00005490| 63 6f 6e 6e 49 44 20 2d | 2d 20 63 6f 6e 6e 49 44 |connID -|- connID|
|000054a0| 20 7d 0d 09 09 09 5c 20 | 67 65 74 73 20 74 68 65 | }....\ |gets the|
|000054b0| 20 63 6f 6e 6e 49 44 20 | 66 6f 72 20 61 6e 20 61 | connID |for an a|
|000054c0| 72 62 69 74 72 61 72 79 | 20 73 68 61 72 65 64 20 |rbitrary| shared |
|000054d0| 6c 69 62 72 61 72 79 0d | 09 5e 65 78 74 65 72 6e |library.|.^extern|
|000054e0| 20 31 30 20 2b 20 40 61 | 62 73 20 20 2d 3e 20 5e | 10 + @a|bs -> ^|
|000054f0| 6c 69 62 0d 09 5e 6c 69 | 62 20 32 2b 20 40 61 62 |lib..^li|b 2+ @ab|
|00005500| 73 20 20 2d 3e 20 5e 63 | 6f 6e 6e 49 44 0d 09 5e |s -> ^c|onnID..^|
|00005510| 63 6f 6e 6e 49 44 20 40 | 20 20 3f 64 75 70 20 3f |connID @| ?dup ?|
|00005520| 45 58 49 54 0d 0d 5c 20 | 6e 6f 74 20 63 6f 6e 6e |EXIT..\ |not conn|
|00005530| 65 63 74 65 64 20 79 65 | 74 20 2d 20 77 65 20 64 |ected ye|t - we d|
|00005540| 6f 20 69 74 20 6e 6f 77 | 0d 09 5e 6c 69 62 20 20 |o it now|..^lib |
|00005550| 36 20 2b 20 20 67 65 74 | 5f 73 68 61 72 65 64 5f |6 + get|_shared_|
|00005560| 6c 69 62 72 61 72 79 0d | 09 4e 49 46 20 20 32 32 |library.|.NIF 22|
|00005570| 30 20 64 69 65 20 20 54 | 48 45 4e 09 09 09 5c 20 |0 die T|HEN...\ |
|00005580| 63 6f 75 6c 64 20 6e 6f | 74 20 6c 6f 61 64 20 73 |could no|t load s|
|00005590| 68 61 72 65 64 20 6c 69 | 62 72 61 72 79 0d 09 64 |hared li|brary..d|
|000055a0| 75 70 20 20 5e 63 6f 6e | 6e 49 44 20 21 0d 3b 0d |up ^con|nID !.;.|
|000055b0| 0d 0d 3a 20 50 52 45 50 | 41 52 45 5f 53 59 53 43 |..: PREP|ARE_SYSC|
|000055c0| 41 4c 4c 53 20 20 28 20 | 2d 2d 20 29 0d 09 22 20 |ALLS ( |-- ).." |
|000055d0| 49 6e 74 65 72 66 61 63 | 65 4c 69 62 22 20 64 72 |Interfac|eLib" dr|
|000055e0| 6f 70 20 31 2d 0d 09 67 | 65 74 5f 73 68 61 72 65 |op 1-..g|et_share|
|000055f0| 64 5f 6c 69 62 72 61 72 | 79 20 20 6e 6f 74 20 3f |d_librar|y not ?|
|00005600| 73 74 61 72 74 55 70 45 | 72 72 6f 72 0d 09 2d 3e |startUpE|rror..->|
|00005610| 20 49 6e 74 65 72 66 61 | 63 65 4c 69 62 5f 63 6f | Interfa|ceLib_co|
|00005620| 6e 6e 49 44 0d 0d 09 22 | 20 4d 61 74 68 4c 69 62 |nnID..."| MathLib|
|00005630| 22 20 64 72 6f 70 20 31 | 2d 0d 09 67 65 74 5f 73 |" drop 1|-..get_s|
|00005640| 68 61 72 65 64 5f 6c 69 | 62 72 61 72 79 20 20 6e |hared_li|brary n|
|00005650| 6f 74 20 3f 73 74 61 72 | 74 55 70 45 72 72 6f 72 |ot ?star|tUpError|
|00005660| 0d 09 2d 3e 20 4d 61 74 | 68 4c 69 62 5f 63 6f 6e |..-> Mat|hLib_con|
|00005670| 6e 49 44 0d 3b 0d 0d 30 | 20 76 61 6c 75 65 20 74 |nID.;..0| value t|
|00005680| 76 74 65 73 74 0d 3a 20 | 67 65 74 5f 74 72 61 6e |vtest.: |get_tran|
|00005690| 73 69 74 69 6f 6e 5f 76 | 65 63 74 6f 72 20 20 7b |sition_v|ector {|
|000056a0| 20 5e 65 78 74 65 72 6e | 20 5c 20 65 78 74 65 72 | ^extern| \ exter|
|000056b0| 6e 3f 20 5e 74 76 20 63 | 6f 6e 6e 49 44 20 2d 2d |n? ^tv c|onnID --|
|000056c0| 20 7d 0d 0d 09 5e 65 78 | 74 65 72 6e 20 31 30 20 | }...^ex|tern 10 |
|000056d0| 2b 20 40 0d 09 49 46 09 | 09 5c 20 74 68 69 73 20 |+ @..IF.|.\ this |
|000056e0| 69 73 20 61 20 4c 49 42 | 43 41 4c 4c 2e 20 20 57 |is a LIB|CALL. W|
|000056f0| 65 20 6c 6f 6f 6b 20 69 | 6e 20 74 68 65 20 67 69 |e look i|n the gi|
|00005700| 76 65 6e 20 6c 69 62 72 | 61 72 79 2e 0d 09 09 5e |ven libr|ary....^|
|00005710| 65 78 74 65 72 6e 20 67 | 65 74 5f 63 6f 6e 6e 49 |extern g|et_connI|
|00005720| 44 0d 09 45 4c 53 45 09 | 5c 20 69 74 27 73 20 61 |D..ELSE.|\ it's a|
|00005730| 20 73 79 73 63 61 6c 6c | 2e 20 20 57 65 20 6c 6f | syscall|. We lo|
|00005740| 6f 6b 20 69 6e 20 49 6e | 74 65 72 66 61 63 65 4c |ok in In|terfaceL|
|00005750| 69 62 20 61 6e 64 20 4d | 61 74 68 4c 69 62 2e 0d |ib and M|athLib..|
|00005760| 09 09 49 6e 74 65 72 66 | 61 63 65 4c 69 62 5f 63 |..Interf|aceLib_c|
|00005770| 6f 6e 6e 49 44 0d 09 54 | 48 45 4e 20 20 2d 3e 20 |onnID..T|HEN -> |
|00005780| 63 6f 6e 6e 49 44 0d 0d | 09 5e 65 78 74 65 72 6e |connID..|.^extern|
|00005790| 20 36 20 2b 20 40 61 62 | 73 20 20 2d 3e 20 5e 74 | 6 + @ab|s -> ^t|
|000057a0| 76 0d 09 5e 74 76 20 40 | 20 20 6e 69 6c 50 20 3d |v..^tv @| nilP =|
|000057b0| 0d 09 49 46 09 09 09 5c | 20 68 61 73 6e 27 74 20 |..IF...\| hasn't |
|000057c0| 62 65 65 6e 20 63 61 6c | 6c 65 64 20 79 65 74 20 |been cal|led yet |
|000057d0| 2d 20 77 65 20 72 65 73 | 6f 6c 76 65 20 69 74 20 |- we res|olve it |
|000057e0| 6e 6f 77 0d 09 09 63 6f | 6e 6e 49 44 20 20 0d 09 |now...co|nnID ..|
|000057f0| 09 5e 65 78 74 65 72 6e | 20 31 34 20 2b 09 09 09 |.^extern| 14 +...|
|00005800| 5c 20 61 64 64 72 20 6f | 66 20 73 79 6d 62 6f 6c |\ addr o|f symbol|
|00005810| 20 28 50 61 73 63 61 6c | 20 73 74 72 69 6e 67 29 | (Pascal| string)|
|00005820| 0d 09 09 5e 74 76 09 09 | 09 09 09 09 5c 20 61 64 |...^tv..|....\ ad|
|00005830| 64 72 20 6f 66 20 6c 6f | 63 61 74 69 6f 6e 20 77 |dr of lo|cation w|
|00005840| 68 65 72 65 20 72 65 73 | 6f 6c 76 65 64 20 70 6f |here res|olved po|
|00005850| 69 6e 74 65 72 20 77 69 | 6c 6c 20 67 6f 0d 09 09 |inter wi|ll go...|
|00005860| 73 79 6d 43 6c 61 73 73 | 0d 09 09 25 5f 46 69 6e |symClass|...%_Fin|
|00005870| 64 53 79 6d 62 6f 6c 0d | 09 09 49 46 09 09 09 09 |dSymbol.|..IF....|
|00005880| 5c 20 64 69 64 6e 27 74 | 20 66 69 6e 64 20 69 74 |\ didn't| find it|
|00005890| 20 74 68 65 72 65 20 2d | 20 74 72 79 20 69 6e 20 | there -| try in |
|000058a0| 4d 61 74 68 4c 69 62 0d | 09 09 09 4d 61 74 68 4c |MathLib.|...MathL|
|000058b0| 69 62 5f 63 6f 6e 6e 49 | 44 0d 09 09 09 5e 65 78 |ib_connI|D....^ex|
|000058c0| 74 65 72 6e 20 31 34 20 | 2b 09 09 5c 20 61 64 64 |tern 14 |+..\ add|
|000058d0| 72 20 6f 66 20 73 79 6d | 62 6f 6c 20 28 50 61 73 |r of sym|bol (Pas|
|000058e0| 63 61 6c 20 73 74 72 69 | 6e 67 29 0d 09 09 09 5e |cal stri|ng)....^|
|000058f0| 74 76 09 09 09 09 09 5c | 20 61 64 64 72 20 6f 66 |tv.....\| addr of|
|00005900| 20 6c 6f 63 61 74 69 6f | 6e 20 77 68 65 72 65 20 | locatio|n where |
|00005910| 72 65 73 6f 6c 76 65 64 | 20 70 6f 69 6e 74 65 72 |resolved| pointer|
|00005920| 20 77 69 6c 6c 20 67 6f | 0d 09 09 09 73 79 6d 43 | will go|....symC|
|00005930| 6c 61 73 73 0d 09 09 09 | 25 5f 46 69 6e 64 53 79 |lass....|%_FindSy|
|00005940| 6d 62 6f 6c 0d 09 09 09 | 3f 73 79 6d 62 6f 6c 45 |mbol....|?symbolE|
|00005950| 72 72 6f 72 09 09 5c 20 | 69 66 20 77 65 20 73 74 |rror..\ |if we st|
|00005960| 69 6c 6c 20 64 69 64 6e | 27 74 20 66 69 6e 64 20 |ill didn|'t find |
|00005970| 69 74 2c 20 66 61 69 6c | 0d 09 09 54 48 45 4e 0d |it, fail|...THEN.|
|00005980| 09 54 48 45 4e 0d 74 76 | 74 65 73 74 20 69 66 20 |.THEN.tv|test if |
|00005990| 64 62 67 72 20 74 68 65 | 6e 0d 09 6d 6f 64 63 6f |dbgr the|n..modco|
|000059a0| 64 65 20 20 72 54 4f 43 | 20 31 31 32 20 2b 20 21 |de rTOC| 112 + !|
|000059b0| 09 09 5c 20 73 65 74 20 | 67 6c 6f 62 61 6c 20 63 |..\ set |global c|
|000059c0| 6f 70 69 65 73 20 6f 66 | 20 6d 6f 64 75 6c 65 20 |opies of| module |
|000059d0| 62 61 73 65 20 72 65 67 | 73 0d 09 6d 6f 64 64 61 |base reg|s..modda|
|000059e0| 74 61 20 20 72 54 4f 43 | 20 31 31 36 20 2b 20 21 |ta rTOC| 116 + !|
|000059f0| 09 09 5c 20 20 69 6e 20 | 63 61 73 65 20 74 68 65 |..\ in |case the|
|00005a00| 72 65 27 73 20 61 20 63 | 61 6c 6c 62 61 63 6b 0d |re's a c|allback.|
|00005a10| 09 0d 09 5e 74 76 20 40 | 20 20 2d 3e 20 72 59 09 |...^tv @| -> rY.|
|00005a20| 09 09 09 5c 20 72 31 32 | 20 2d 3e 20 74 72 61 6e |...\ r12| -> tran|
|00005a30| 73 69 74 69 6f 6e 20 76 | 65 63 74 6f 72 0d 09 5b |sition v|ector..[|
|00005a40| 09 24 20 38 30 30 43 30 | 30 30 30 20 63 6f 64 65 |.$ 800C0|000 code|
|00005a50| 2c 09 09 5c 20 6c 77 7a | 20 20 72 30 2c 20 28 72 |,..\ lwz| r0, (r|
|00005a60| 31 32 29 20 2d 20 67 65 | 74 20 64 65 73 74 20 61 |12) - ge|t dest a|
|00005a70| 64 64 72 20 74 6f 20 72 | 30 0d 09 09 24 20 37 43 |ddr to r|0...$ 7C|
|00005a80| 30 39 30 33 41 36 20 63 | 6f 64 65 2c 09 09 5c 20 |0903A6 c|ode,..\ |
|00005a90| 6d 74 63 74 72 20 72 30 | 09 09 20 2d 20 61 6e 64 |mtctr r0|.. - and|
|00005aa0| 20 74 68 65 6e 20 74 6f | 20 63 74 72 0d 09 5d 0d | then to| ctr..].|
|00005ab0| 3b 0d 0d 0d 3a 20 53 45 | 54 55 50 20 20 7b 20 5c |;...: SE|TUP { \|
|00005ac0| 20 68 6e 64 6c 20 61 64 | 64 72 20 65 6e 74 50 74 | hndl ad|dr entPt|
|00005ad0| 20 63 6f 64 65 53 7a 20 | 64 61 74 61 53 7a 20 63 | codeSz |dataSz c|
|00005ae0| 67 5f 63 6f 64 65 20 63 | 67 5f 64 61 74 61 0d 09 |g_code c|g_data..|
|00005af0| 09 09 09 74 6f 74 61 6c | 5f 63 6f 64 65 20 74 6f |...total|_code to|
|00005b00| 74 61 6c 5f 64 61 74 61 | 20 66 6c 61 67 73 20 63 |tal_data| flags c|
|00005b10| 68 6f 70 70 65 64 20 2d | 2d 20 7d 0d 0d 09 69 6e |hopped -|- }...in|
|00005b20| 69 74 69 61 6c 5f 65 6e | 74 72 79 5f 70 6f 69 6e |itial_en|try_poin|
|00005b30| 74 0d 09 66 69 78 5f 73 | 79 73 5f 53 50 0d 0d 5c |t..fix_s|ys_SP..\|
|00005b40| 20 46 69 72 73 74 20 77 | 65 20 67 72 6f 77 20 74 | First w|e grow t|
|00005b50| 68 65 20 61 70 70 6c 69 | 63 61 74 69 6f 6e 20 68 |he appli|cation h|
|00005b60| 65 61 70 3a 0d 09 25 5f | 4d 61 78 41 70 70 6c 5a |eap:..%_|MaxApplZ|
|00005b70| 6f 6e 65 0d 0d 5c 20 6e | 6f 77 20 77 65 20 61 6c |one..\ n|ow we al|
|00005b80| 6c 6f 63 61 74 65 20 61 | 20 62 6c 6f 63 6b 20 66 |locate a| block f|
|00005b90| 6f 72 20 74 68 65 20 72 | 65 74 75 72 6e 20 73 74 |or the r|eturn st|
|00005ba0| 61 63 6b 3a 0d 09 72 73 | 74 61 63 6b 5f 73 69 7a |ack:..rs|tack_siz|
|00005bb0| 65 20 25 5f 4e 65 77 48 | 61 6e 64 6c 65 43 6c 65 |e %_NewH|andleCle|
|00005bc0| 61 72 20 20 2d 3e 20 68 | 6e 64 6c 0d 09 68 6e 64 |ar -> h|ndl..hnd|
|00005bd0| 6c 20 25 5f 4d 6f 76 65 | 48 48 69 0d 09 68 6e 64 |l %_Move|HHi..hnd|
|00005be0| 6c 20 25 5f 48 4c 6f 63 | 6b 0d 09 68 6e 64 6c 20 |l %_HLoc|k..hndl |
|00005bf0| 40 20 20 2d 3e 20 61 64 | 64 72 0d 09 61 64 64 72 |@ -> ad|dr..addr|
|00005c00| 20 72 73 74 61 63 6b 5f | 73 69 7a 65 20 2b 20 20 | rstack_|size + |
|00005c10| 2d 3e 20 52 50 09 09 5c | 20 52 50 20 69 73 20 73 |-> RP..\| RP is s|
|00005c20| 65 74 20 75 70 20 2d 20 | 6e 6f 77 20 77 65 20 63 |et up - |now we c|
|00005c30| 61 6e 20 64 6f 20 63 61 | 6c 6c 73 21 0d 0d 09 24 |an do ca|lls!...$|
|00005c40| 20 43 44 20 20 24 20 41 | 42 09 09 09 09 09 09 5c | CD $ A|B......\|
|00005c50| 20 6c 65 61 76 65 20 6d | 61 72 6b 65 72 73 20 6f | leave m|arkers o|
|00005c60| 6e 20 74 68 65 20 73 74 | 61 63 6b 20 2d 20 74 68 |n the st|ack - th|
|00005c70| 65 73 65 20 6d 69 67 68 | 74 20 61 6c 73 6f 0d 09 |ese migh|t also..|
|00005c80| 09 09 09 09 09 09 09 09 | 5c 20 20 68 6f 70 65 66 |........|\ hopef|
|00005c90| 75 6c 6c 79 20 63 61 74 | 63 68 20 61 20 73 74 61 |ully cat|ch a sta|
|00005ca0| 63 6b 20 75 6e 64 65 72 | 66 6c 6f 77 0d 0d 09 24 |ck under|flow...$|
|00005cb0| 20 43 44 43 44 20 3e 72 | 20 20 24 20 41 42 41 42 | CDCD >r| $ ABAB|
|00005cc0| 20 3e 72 09 09 09 5c 20 | 61 6e 64 20 61 6c 73 6f | >r...\ |and also|
|00005cd0| 20 6f 6e 20 74 68 65 20 | 72 65 74 75 72 6e 20 73 | on the |return s|
|00005ce0| 74 61 63 6b 0d 0d 5c 20 | 6e 6f 77 20 77 65 20 67 |tack..\ |now we g|
|00005cf0| 72 61 62 20 74 68 65 20 | 69 74 65 6d 73 20 77 65 |rab the |items we|
|00005d00| 20 6e 65 65 64 20 6f 75 | 74 20 6f 66 20 74 68 65 | need ou|t of the|
|00005d10| 20 69 6e 66 6f 20 62 6c | 6f 63 6b 0d 5c 20 20 61 | info bl|ock.\ a|
|00005d20| 74 20 74 68 65 20 73 74 | 61 72 74 20 6f 66 20 74 |t the st|art of t|
|00005d30| 68 65 20 63 6f 64 65 20 | 61 72 65 61 0d 0d 09 65 |he code |area...e|
|00005d40| 6e 74 72 79 5f 70 6f 69 | 6e 74 5f 74 6f 63 5f 6f |ntry_poi|nt_toc_o|
|00005d50| 66 66 73 65 74 20 20 52 | 54 4f 43 20 2b 20 40 20 |ffset R|TOC + @ |
|00005d60| 20 2d 3e 20 65 6e 74 50 | 74 0d 09 65 6e 74 50 74 | -> entP|t..entPt|
|00005d70| 20 34 20 2b 20 40 09 09 | 2d 3e 20 63 6f 64 65 53 | 4 + @..|-> codeS|
|00005d80| 7a 0d 09 65 6e 74 50 74 | 20 38 20 2b 20 40 09 09 |z..entPt| 8 + @..|
|00005d90| 2d 3e 20 64 61 74 61 53 | 7a 0d 09 65 6e 74 50 74 |-> dataS|z..entPt|
|00005da0| 20 31 32 20 2b 20 40 09 | 2d 3e 20 63 67 5f 63 6f | 12 + @.|-> cg_co|
|00005db0| 64 65 0d 09 65 6e 74 50 | 74 20 31 36 20 2b 20 40 |de..entP|t 16 + @|
|00005dc0| 09 2d 3e 20 63 67 5f 64 | 61 74 61 0d 09 65 6e 74 |.-> cg_d|ata..ent|
|00005dd0| 50 74 20 35 32 20 2b 20 | 40 09 2d 3e 20 66 6c 61 |Pt 52 + |@.-> fla|
|00005de0| 67 73 0d 0d 5c 20 6e 6f | 77 20 77 65 20 73 65 74 |gs..\ no|w we set|
|00005df0| 20 75 70 20 74 68 65 20 | 62 61 73 65 20 72 65 67 | up the |base reg|
|00005e00| 73 20 61 6e 64 20 74 68 | 65 20 73 65 67 6d 65 6e |s and th|e segmen|
|00005e10| 74 20 74 61 62 6c 65 20 | 73 6f 20 77 65 20 63 61 |t table |so we ca|
|00005e20| 6e 0d 5c 20 20 61 64 64 | 72 65 73 73 20 74 68 69 |n.\ add|ress thi|
|00005e30| 6e 67 73 2e 20 20 46 69 | 72 73 74 20 74 68 65 20 |ngs. Fi|rst the |
|00005e40| 64 61 74 61 20 61 72 65 | 61 3a 0d 0d 09 66 6c 61 |data are|a:...fla|
|00005e50| 67 73 20 31 20 61 6e 64 | 0d 09 49 46 09 09 09 5c |gs 1 and|..IF...\|
|00005e60| 20 74 68 69 73 20 69 73 | 20 61 6e 20 69 6e 73 74 | this is| an inst|
|00005e70| 61 6c 6c 65 64 20 61 70 | 70 2e 0d 09 09 64 61 74 |alled ap|p....dat|
|00005e80| 61 53 7a 20 2d 3e 20 74 | 6f 74 61 6c 5f 64 61 74 |aSz -> t|otal_dat|
|00005e90| 61 0d 09 09 52 54 4f 43 | 20 2d 3e 20 61 64 64 72 |a...RTOC| -> addr|
|00005ea0| 0d 09 45 4c 53 45 09 09 | 5c 20 77 65 27 72 65 20 |..ELSE..|\ we're |
|00005eb0| 69 6e 20 74 68 65 20 64 | 65 76 65 6c 6f 70 6d 65 |in the d|evelopme|
|00005ec0| 6e 74 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 2c 20 |nt envir|onment, |
|00005ed0| 73 6f 20 74 68 65 20 64 | 61 74 61 0d 09 09 09 09 |so the d|ata.....|
|00005ee0| 5c 20 20 61 72 65 61 20 | 67 6f 65 73 20 69 6e 20 |\ area |goes in |
|00005ef0| 61 20 68 61 6e 64 6c 65 | 3a 0d 09 09 65 6e 74 50 |a handle|:...entP|
|00005f00| 74 20 36 38 20 2b 20 40 | 20 20 2d 3e 20 74 6f 74 |t 68 + @| -> tot|
|00005f10| 61 6c 5f 64 61 74 61 0d | 09 09 74 6f 74 61 6c 5f |al_data.|..total_|
|00005f20| 64 61 74 61 20 20 6c 6f | 63 6b 65 64 48 6e 64 6c |data lo|ckedHndl|
|00005f30| 20 20 2d 3e 20 61 64 64 | 72 0d 09 09 52 54 4f 43 | -> add|r...RTOC|
|00005f40| 20 20 61 64 64 72 20 20 | 64 61 74 61 53 7a 20 20 | addr |dataSz |
|00005f50| 63 61 6c 6c 5f 42 6c 6f | 63 6b 4d 6f 76 65 0d 09 |call_Blo|ckMove..|
|00005f60| 54 48 45 4e 0d 0d 09 61 | 64 64 72 20 63 67 5f 64 |THEN...a|ddr cg_d|
|00005f70| 61 74 61 20 2b 20 68 61 | 6c 66 5f 64 69 73 70 6c |ata + ha|lf_displ|
|00005f80| 5f 72 61 6e 67 65 20 2b | 20 20 2d 3e 20 6d 61 69 |_range +| -> mai|
|00005f90| 6e 44 61 74 61 0d 09 2d | 31 20 2d 3e 20 6d 6f 64 |nData..-|1 -> mod|
|00005fa0| 44 61 74 61 0d 0d 5c 20 | 77 69 74 68 20 74 68 65 |Data..\ |with the|
|00005fb0| 20 64 61 74 61 20 61 72 | 65 61 20 73 65 74 20 75 | data ar|ea set u|
|00005fc0| 70 2c 20 77 65 20 63 61 | 6e 20 6e 6f 77 20 73 74 |p, we ca|n now st|
|00005fd0| 6f 72 65 20 74 6f 20 69 | 74 21 0d 0d 09 74 6f 74 |ore to i|t!...tot|
|00005fe0| 61 6c 5f 64 61 74 61 20 | 64 61 74 61 53 7a 20 2d |al_data |dataSz -|
|00005ff0| 20 20 2d 3e 20 73 70 61 | 72 65 5f 64 61 74 61 5f | -> spa|re_data_|
|00006000| 73 69 7a 65 0d 0d 09 65 | 6e 74 50 74 20 36 30 20 |size...e|ntPt 60 |
|00006010| 2b 20 40 20 20 2d 3e 20 | 63 68 6f 70 70 65 64 0d |+ @ -> |chopped.|
|00006020| 09 74 6f 74 61 6c 5f 64 | 61 74 61 20 20 63 68 6f |.total_d|ata cho|
|00006030| 70 70 65 64 20 2b 09 73 | 65 67 54 61 62 6c 65 20 |pped +.s|egTable |
|00006040| 20 38 20 2b 20 21 0d 09 | 61 64 64 72 20 20 63 68 | 8 + !..|addr ch|
|00006050| 6f 70 70 65 64 20 2d 09 | 09 09 73 65 67 54 61 62 |opped -.|..segTab|
|00006060| 6c 65 20 31 32 20 2b 20 | 21 0d 0d 09 61 64 64 72 |le 12 + |!...addr|
|00006070| 20 2d 3e 20 64 61 74 61 | 5f 73 74 61 72 74 0d 09 | -> data|_start..|
|00006080| 61 64 64 72 20 63 67 5f | 64 61 74 61 20 2b 20 20 |addr cg_|data + |
|00006090| 2d 3e 20 6e 75 63 5f 64 | 61 74 61 5f 73 74 61 72 |-> nuc_d|ata_star|
|000060a0| 74 0d 09 61 64 64 72 20 | 74 6f 74 61 6c 5f 64 61 |t..addr |total_da|
|000060b0| 74 61 20 2b 20 20 2d 3e | 20 64 61 74 61 5f 6c 69 |ta + ->| data_li|
|000060c0| 6d 69 74 0d 09 61 64 64 | 72 20 64 61 74 61 53 7a |mit..add|r dataSz|
|000060d0| 20 2b 20 20 2d 3e 20 44 | 50 0d 0d 5c 20 6e 6f 77 | + -> D|P..\ now|
|000060e0| 20 74 68 65 20 63 6f 64 | 65 20 61 72 65 61 0d 0d | the cod|e area..|
|000060f0| 09 66 6c 61 67 73 20 31 | 20 61 6e 64 0d 09 49 46 |.flags 1| and..IF|
|00006100| 09 09 09 5c 20 74 68 69 | 73 20 69 73 20 61 6e 20 |...\ thi|s is an |
|00006110| 69 6e 73 74 61 6c 6c 65 | 64 20 61 70 70 2e 0d 5c |installe|d app..\|
|00006120| 09 09 74 72 75 65 20 2d | 3e 20 69 6e 73 74 6c 64 |..true -|> instld|
|00006130| 3f 09 09 09 09 5c 20 69 | 6e 20 63 61 73 65 20 69 |?....\ i|n case i|
|00006140| 74 20 77 61 73 6e 27 74 | 20 73 65 74 20 61 6c 72 |t wasn't| set alr|
|00006150| 65 61 64 79 0d 09 09 63 | 6f 64 65 53 7a 20 2d 3e |eady...c|odeSz ->|
|00006160| 20 74 6f 74 61 6c 5f 63 | 6f 64 65 0d 09 09 65 6e | total_c|ode...en|
|00006170| 74 50 74 20 2d 3e 20 61 | 64 64 72 0d 09 45 4c 53 |tPt -> a|ddr..ELS|
|00006180| 45 0d 09 09 65 6e 74 50 | 74 20 36 34 20 2b 20 40 |E...entP|t 64 + @|
|00006190| 20 20 2d 3e 20 74 6f 74 | 61 6c 5f 63 6f 64 65 0d | -> tot|al_code.|
|000061a0| 09 09 74 6f 74 61 6c 5f | 63 6f 64 65 20 20 6c 6f |..total_|code lo|
|000061b0| 63 6b 65 64 48 6e 64 6c | 20 20 2d 3e 20 61 64 64 |ckedHndl| -> add|
|000061c0| 72 0d 09 09 65 6e 74 50 | 74 20 20 61 64 64 72 20 |r...entP|t addr |
|000061d0| 20 63 6f 64 65 53 7a 20 | 20 63 61 6c 6c 5f 42 6c | codeSz | call_Bl|
|000061e0| 6f 63 6b 4d 6f 76 65 0d | 09 54 48 45 4e 0d 0d 09 |ockMove.|.THEN...|
|000061f0| 61 64 64 72 20 63 67 5f | 63 6f 64 65 20 2b 20 68 |addr cg_|code + h|
|00006200| 61 6c 66 5f 64 69 73 70 | 6c 5f 72 61 6e 67 65 20 |alf_disp|l_range |
|00006210| 2b 20 20 2d 3e 20 6d 61 | 69 6e 43 6f 64 65 0d 09 |+ -> ma|inCode..|
|00006220| 2d 31 20 2d 3e 20 6d 6f | 64 43 6f 64 65 0d 0d 09 |-1 -> mo|dCode...|
|00006230| 74 6f 74 61 6c 5f 63 6f | 64 65 20 63 6f 64 65 53 |total_co|de codeS|
|00006240| 7a 20 2d 20 20 2d 3e 20 | 73 70 61 72 65 5f 63 6f |z - -> |spare_co|
|00006250| 64 65 5f 73 69 7a 65 0d | 0d 09 65 6e 74 50 74 20 |de_size.|..entPt |
|00006260| 35 36 20 2b 20 40 20 20 | 2d 3e 20 63 68 6f 70 70 |56 + @ |-> chopp|
|00006270| 65 64 0d 09 74 6f 74 61 | 6c 5f 63 6f 64 65 20 20 |ed..tota|l_code |
|00006280| 63 68 6f 70 70 65 64 20 | 2b 09 73 65 67 54 61 62 |chopped |+.segTab|
|00006290| 6c 65 20 21 0d 09 61 64 | 64 72 20 20 63 68 6f 70 |le !..ad|dr chop|
|000062a0| 70 65 64 20 2d 09 09 09 | 73 65 67 54 61 62 6c 65 |ped -...|segTable|
|000062b0| 20 34 2b 20 21 0d 0d 09 | 61 64 64 72 20 2d 3e 20 | 4+ !...|addr -> |
|000062c0| 63 6f 64 65 5f 73 74 61 | 72 74 0d 09 61 64 64 72 |code_sta|rt..addr|
|000062d0| 20 63 67 5f 63 6f 64 65 | 20 2b 20 20 2d 3e 20 6e | cg_code| + -> n|
|000062e0| 75 63 5f 63 6f 64 65 5f | 73 74 61 72 74 0d 09 61 |uc_code_|start..a|
|000062f0| 64 64 72 20 74 6f 74 61 | 6c 5f 63 6f 64 65 20 2b |ddr tota|l_code +|
|00006300| 20 20 2d 3e 20 63 6f 64 | 65 5f 6c 69 6d 69 74 0d | -> cod|e_limit.|
|00006310| 09 61 64 64 72 20 63 6f | 64 65 53 7a 20 2b 20 20 |.addr co|deSz + |
|00006320| 64 75 70 20 2d 3e 20 43 | 44 50 20 2d 3e 20 70 72 |dup -> C|DP -> pr|
|00006330| 65 76 5f 43 44 50 0d 0d | 09 61 64 64 72 20 32 30 |ev_CDP..|.addr 20|
|00006340| 20 2b 20 20 2d 3e 20 63 | 6f 6e 74 65 78 74 0d 09 | + -> c|ontext..|
|00006350| 0d 09 66 6c 61 67 73 20 | 31 20 61 6e 64 0d 09 4e |..flags |1 and..N|
|00006360| 49 46 09 09 09 5c 20 64 | 65 76 65 6c 6f 70 6d 65 |IF...\ d|evelopme|
|00006370| 6e 74 0d 0d 09 09 61 64 | 64 72 20 63 6f 64 65 53 |nt....ad|dr codeS|
|00006380| 7a 20 20 25 5f 4d 61 6b | 65 44 61 74 61 45 78 65 |z %_Mak|eDataExe|
|00006390| 63 75 74 61 62 6c 65 0d | 0d 5c 20 6e 6f 77 20 74 |cutable.|.\ now t|
|000063a0| 68 65 20 69 6e 74 65 72 | 65 73 74 69 6e 67 20 62 |he inter|esting b|
|000063b0| 69 74 20 2d 20 77 65 20 | 73 77 69 74 63 68 20 65 |it - we |switch e|
|000063c0| 78 65 63 75 74 69 6f 6e | 20 69 6e 74 6f 20 74 68 |xecution| into th|
|000063d0| 65 20 68 61 6e 64 6c 65 | 0d 5c 20 20 77 68 65 72 |e handle|.\ wher|
|000063e0| 65 20 77 65 20 6a 75 73 | 74 20 6d 6f 76 65 64 20 |e we jus|t moved |
|000063f0| 74 68 65 20 63 6f 64 65 | 21 0d 09 09 65 6e 74 50 |the code|!...entP|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.